我正在做一些 SQL 练习,但我被困在我将要描述的那个。
有一个名为 product 的表,它有 3 列:制造商、型号和类型。
这是结果select * from product
练习是这样说的:找出只生产同类型模型的制造商,并且这些模型的数量超过1。推断:制造商,类型。
正确的查询应该返回:
我的方法是首先查看哪些制造商只生产一种产品,然后排除那些只有一种型号的制造商。为此,我使用了以下查询,它返回了正确的结果,除了我只能设法显示制造商,而不能显示类型和练习要求两者。
这是我的查询:
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 个小时,但没有成功。:( 请帮帮我。