행에 MySubId
이라는 열이 포함 된 테이블이 있습니다. 이 열의 값은 중복 될 수 있습니다. MySubId
값과 가장 많이 나타나는 MySubId
값에 대한 행 수를 찾고 싶습니다.SQL Server GROUP BY dilemma
나는 다음과 같은 쿼리를 가지고 :
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를 계산하기 전에 하위 쿼리를 포함해야합니까?
업데이트 :
내가 TOP 1
를 사용하여 결과 세트를 필터링 anwers 많이 볼 수 있으므로이 쿼리를 필터링 할 MAX
기능을 사용 할 수있는 방법이 없다고 가정하는 나는 오전에 바로 최대가 나타나는 MySubId
값이 있습니까? 난 당신이 최신로 시작하는 모든 중복을 삭제하려면이 포스터
에 대한 다음 논리적 인 단계가 될 것입니다 생각으로
+1 동일한 최대 개수를 공유하는 여러 MySubIds의 가능성을 고려합니다. –
+1 (같은 이유로) –
+1 어떻게 든 나는 넥타이가 존재한다는 것을 결코 알지 못했고 나는 이것을 영원히 힘든 길로 해왔다 ... –