我正在做一些SQL练习,但我卡在了一个我将要描述的问题上。
有一个名为product的表,它有3列:maker、model和type。
这是select * from product
的结果:
练习内容如下: 找出只生产同一类型型号数量超过1的制造商。 推导出:maker,type。
正确的查询应返回如下结果:
我的方法是首先查看哪些制造商只生产一种类型的产品,然后排除那些只有一个型号的制造商。为了达到这个目的,我使用了以下查询,它返回了正确的结果,但事实上我只能显示制造商而无法显示类型,而且练习要求两者都需要呈现。
这是我的查询:
SELECT
DISTINCT maker
FROM product
GROUP BY maker
HAVING COUNT(distinct type) = 1
AND
COUNT(model)> 1
结果如下:
然后,当我尝试这样显示类型时:
SELECT
DISTINCT maker,type
FROM product
GROUP BY maker,type
HAVING COUNT(distinct type) = 1
AND
COUNT(model)> 1
这就是我得到的:
你有没有想法,为什么它不能按预期工作?你会怎么做来解决这个问题?我已经尝试了3个多小时,但没有成功。:( 请帮帮我。