【发布时间】:2015-05-13 06:03:31
【问题描述】:
我从SQL-EX.RU得到了这个 SQL 查询练习
找出只生产同类型型号的制造商,以及 这些模型的数量超过1。推断:制造商,类型
表信息:
产品(制造商、型号、类型)
PC(代码、型号、速度、内存、高清、光盘、价格)
笔记本电脑(代码、型号、速度、内存、高清、屏幕、价格)打印机(代码、 型号、颜色、类型、价格)
我写的版本(先在我的jotta pad上刮):
SELECT Product.maker, Product.type
FROM Product
WHERE Product.maker IN
(SELECT X.maker
FROM
(SELECT DISTINCT maker,type
FROM Product
) AS X
GROUP BY X.maker
HAVING COUNT(X.type) = 1
)
GROUP BY Product.maker,Product.type
HAVING COUNT(Product.model) > 1
这给了我正确的结果。但是,我相信这可能不是唯一的解决方案(至少不是理想的解决方案)——因为我不是 SQL 向导。
如果我能更好地简化答案,我将不胜感激,我将使用新的查询语句更新问题。
塔
更新 自最初发布以来,我将其总结为:
SELECT maker, type
FROM Product
WHERE Product.maker IN
(
SELECT maker
FROM Product
GROUP BY maker
HAVING COUNT(DISTINCT type)=1
)
GROUP BY maker, type
HAVING COUNT(product.model) > 1
【问题讨论】:
标签: sql select aggregate-functions