以下是表格:
产品(制造商,型号,类型)
表"产品"包括有关制造商,型号和类型的信息(' PC','笔记本电脑'打印机')
挑战:
找出仅生产相同型号型号的制造商,这些型号的数量超过1个。
我做了什么:
SELECT maker, type
FROM Product
GROUP BY maker
HAVING COUNT (type) > 1 AND COUNT( DISTINCT type ) = 1
问题:
专栏' Product.type'在选择列表中无效,因为它不包含在聚合函数或GROUP BY子句中。
备注:
在表格中,制造商D仅创建打印机。所以,我想得到:
Maker | Type
D | Printer
如果我从查询中删除类型,我得到D,这是我想要的,但没有类型。如果我在GROUP BY子句中包含类型,我会得到不同的结果。
问题:
如何解决这个问题?
答案 0 :(得分:3)
SELECT maker, MIN(type)
FROM product
GROUP BY
maker
HAVING COUNT(DISTINCT type) = 1
AND COUNT(*) > 1
答案 1 :(得分:0)
尝试,
SELECT maker, type
FROM Product
GROUP BY maker,Type
HAVING COUNT (type) > 1 AND COUNT( DISTINCT type ) = 1