SQL 按组计数并筛选数量大于的记录

6
我有一个SQL语句,它可以计算组数,但我想筛选出组数大于1的数据,请问有谁能帮忙,因为当前代码不能得到正确结果?
select Code, Qty, Count(Qty) from Product where ItemName = 'Banana'
and Count(Qty) > 1
Group by Code, Qty order by 3 desc

你确定要按 Qty 分组吗? - Mureinik
可能是SQL - having VS where的重复问题。 - Menno
1个回答

16

你应该将这个条件放在 HAVING 子句中:

select Code, Qty, Count(Qty) Qty
from Product 
where ItemName = 'Banana'
Group by Code
having count(Qty) > 1
order by 3 desc

HAVINGGROUP BY 之后计算,而 WHERE 则在之前计算,这意味着 WHERE 子句将过滤记录级别,而 HAVING 子句则基于聚合过滤。

了解更详细的解释,请查看SQL - having VS where

我还建议您阅读SELECT语句的逻辑处理顺序


5
没看到你比我先回答了。由于我们的答案几乎相同,我删除了我的回答并点赞了你的。 - Zohar Peled
然后我们有两列具有相同名称“Qty”。 - a55

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接