gpt4 book ai didi

sql-server - 无法引用计算出现次数的列

转载 作者:行者123 更新时间:2023-12-04 23:49:41 26 4
gpt4 key购买 nike

我创建了以下查询来计算表中 ID 的重复次数。

select count(Hazaa) as Countie from Shazoo
group by Hazaa

意识到它们中的大多数等于 1(它们应该是),我添加了条件以仅显示有缺陷的。但是,SQL Server 不同意我的语法。

select count(Hazaa) as Countie from Shazoo
where Countie > 1
group by Hazaa

我如何根据结果的数量来区分我的结果?

最佳答案

对于 GROUP BY 的过滤结果,您需要使用 HAVING

SELECT Hazaa, COUNT(Hazaa) AS Countie
FROM Shazoo
GROUP BY Hazaa
HAVING COUNT(Hazaa) > 1

或将其包装在子查询/CTE 中并使用 WHERE 进行过滤:

;WITH cte AS (
SELECT Hazaa, COUNT(Hazaa) AS Countie
FROM Shazoo
GROUP BY Hazaa
)
SELECT *
FROM cte
WHERE Countie > 1;

参见 simplified order of execution

enter image description here

读取简化图像,例如:首先从源中获取数据,然后使用 WHERE 进行过滤,然后使用 GROUP BY,然后使用 HAVING 过滤组结果最后使用 SELECT 获取/项目列。

您也可以这样想,WHERE/HAVING 将过滤您的行,但使用 SELECT 您将限制列,如:SELECT * FROM tab 给出所有这些,SELECT id FROM tab 只给出一个。

Logical query processing

关于sql-server - 无法引用计算出现次数的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32478450/

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