我有一个包含名为MySubId
的列的行。此列中的值可以重复。我想查找MySubId
值和出现最多的MySubId
值的行数。SQL Server GROUP BY困境
我有以下查询:
SELECT MySubId, COUNT(MySubId) AS MySubIdCount
FROM MyTable
GROUP BY MySubId
HAVING COUNT(MySubId)=MAX(COUNT(MySubId))
但我得到的错误:
Msg 130, Level 15, State 1, Line 4 Cannot perform an aggregate function on an expression containing an aggregate or a subquery.
是没可能用一个简单的查询来做到这一点?在使用HAVING
条款之前,是否必须嵌入子查询来计算MAX?
更新:
我看到很多anwers过滤结果通过TOP 1
设定的,所以我是假设没有办法使用MAX
功能来过滤这个查询只是最大出现MySubId
值?
+1考虑到多个MySubIds共享相同的最大数量的可能性。 –
+1(出于同样的原因) –
+1不知何故,我从来不知道'带领带'存在,我一直这样做是一种艰难的方式永远... –