使用count()构建sql查询,其中count()> 1

Nic*_*ndo 5 t-sql sql-server

如果我有一个表有重复ID的表,我如何计算相同ID出现在表中的次数,并且只显示计数大于1的记录?

我试过了:

SELECT COUNT(ID) AS myCount FROM myTbl
WHERE myCount > 1 GROUP BY ID
Run Code Online (Sandbox Code Playgroud)

但它说myCount列名无效.有人能告诉我我做错了什么吗?

Dav*_*haw 14

您需要使用HAVING关键字:

SELECT COUNT(ID) AS myCount FROM myTbl
GROUP BY ID
HAVING COUNT(ID) > 1
Run Code Online (Sandbox Code Playgroud)

来自MSDN:

指定组或聚合的搜索条件.HAVING只能与SELECT语句一起使用.HAVING通常用于GROUP BY子句.不使用GROUP BY时,HAVING的行为类似于WHERE子句.