I는 다음과 같습니다 일부 데이터가 :SQL 추출 최대
Sector Category rec_coun
------ -------- ---------
A 25 53
A 24 1911
A 23 2010
A .. ..
A 1 190
B 25 787877
B 24 931231231
B .. ..
8 1 778787
..
C 1 6666
은 내가 얻고 싶은 것은 각 부문, 최대 레코드 수와 관련된 카테고리를 들어, 테이블 보여주는입니다 섹터와 카테고리의 조합 (예 : 위의 예에서는
Sector Category Max Recs
------ -------- --------
A 23 2010
B 24 931231231
....
) 나는 이상적으로 이것을 하나의 단계로하고 싶다. 시도했습니다.
select distinct [Sector], [Category], max(rec_cnt)
from table
group by [Sector], [Category]
having rec_cnt = max(rec_cnt)
좋지 않습니다. 가능한 경우 중첩 된 쿼리에서 내부 조인을 피하는 것이 가장 좋지만 마지막으로 최선을 저장하십시오. 나는 실제로 SQL Server 2000을 사용하고 있으므로이 작업이 다소 까다로울 수 있습니다.
select distinct [Sector],
FIRST_VALUE(Category) over (partition by Sector order by rec_cnt desc) as [Category],
max(rec_cnt) over (partition by Sector) as [rec_cnt]
from table
편집 : 좋아,이 작동하지 않을 수
지원되는 소프트웨어로 업데이트해야합니다. SQL Server 2000은 수년 동안 지원되지 않았습니다. –