gpt4 book ai didi

sql - GROUP BY 和 COUNTs 未产生预期结果

转载 作者:行者123 更新时间:2023-12-04 02:56:21 25 4
gpt4 key购买 nike

我正在做一些 SQL 练习,但我被困在我将要描述的练习中。

有一个名为 product 的表,它有 3 列:制造商、型号和类型。

这是select * from product的结果

enter image description here

练习是这样说的:
找出只生产相同型号型号的制造商,并且这些型号的数量超过1。
推断:制造商,类型。

正确的查询应该返回:

enter image description here

我的方法是首先查看哪些制造商只生产一种类型的产品,然后排除那些只有一种型号的制造商。为此,我使用了以下查询,它返回正确的结果,但我只能设法显示制造商,而不能显示类型,并且练习要求两者都显示。

这是我的查询:

SELECT
DISTINCT maker
FROM product
GROUP BY maker
HAVING COUNT(distinct type) = 1
AND
COUNT(model)> 1

它返回这个:

enter image description here

然后,当我尝试通过这样做来显示类型时:
SELECT
DISTINCT maker,type
FROM product
GROUP BY maker,type
HAVING COUNT(distinct type) = 1
AND
COUNT(model)> 1

这就是我得到的:

enter image description here

你知道为什么这不能按预期工作吗?你会怎么做来解决这个问题?我一直试图解决这个问题超过 3 个小时没有成功。 :( 请帮帮我。

最佳答案

如果你只返回那些只包含一种类型的组,你可以使用 MAX/MIN找出什么type在那个组是。

SELECT maker,
MAX(type) AS type
FROM product
GROUP BY maker
HAVING COUNT(DISTINCT type) = 1
AND COUNT(model) > 1

当您添加 typeGROUP BY list 它将为您提供 maker,type 的每个组合的结果行这就是为什么您的第二次尝试不起作用的原因。

关于sql - GROUP BY 和 COUNTs 未产生预期结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14144183/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com