我有一個包含名爲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不知何故,我從來不知道'帶領帶'存在,我一直這樣做是一種艱難的方式永遠... –