【发布时间】:2012-08-26 08:40:08
【问题描述】:
如何查找以下查询的数据
Original Source第89题
表结构: 产品(制造商、型号、类型)
任务:
找出那些拥有最多模型的制造商
产品表以及模型数量最少的那些。
输出:制造商、模型数量
有问题的提示是GROUP BY、HAVING 和IN
我尝试了各种方法来找到这个基本上我想出的是我需要使用Max(COUNT(model))
结果应该是
maker qty
A 7 --max
C 1 --min
我想出的一个解决方案是
select maker, count(ps.model) as Count from product as ps
group by ps.maker
having count(ps.model) in
(
select max(cnt) from (select count(model) as cnt from product group by maker)t
union
select min(cnt) from (select count(model) as cnt from product group by maker)t
)
还有没有其他办法。
【问题讨论】:
-
@marc_s ussign sql-ex.ru 练习我在哪里得到这个问题。所以不能说数据库,但这是一个简单的 RDBMS 问题
-
您还可以练习您的 SQL 技能并检查它是否与 RDBMS 无关,试试这个:sqlfiddle.com
-
@MichaelBuen:对于这个全新的数据集,需要在开始练习之前创建。但是 sql-ex 提供了预建的数据库来练习 select 查询。
-
@MichaelBuen:添加了 sqlfiddle
标签: sql sql-server-2008 group-by having-clause