[MSSQL] RANK, 순위함수

2014. 3. 12. 17:32IT

[순위 함수 정리]


1) ROW_NUMBER() : 순차적으로 순위 결정

SELECT

ROW_NUMBER() OVER(ORDER BY [컬럼] DESC) AS '순위'

FROM [테이블]



2) DENSE_RANK() : 중복 순위가 있을 경우에도 강제로 순차적으로 순위 결정

SELECT

DENSE_RANK() OVER( BY [컬럼] DESC) As '순위'

FROM [테이블]



3) RANK() : 중복 순위가 있을때 건너뛰고 순위 결정

SELECT

RANK() OVER( BY [컬럼] DESC) As '순위'

FROM [테이블]



4) 그룹에 대한 순위

... OVER(PARTITION BY [컬럼])

예제: 

SELECT

RANK() OVER (PARTITION BY  X.[학년도],  X.[학기],  X.[대학코드],  X.[학과코드],  X.[전공코드],  X.[학생학년] ORDER BY  X.[환산점수] DESC) AS '학기별석차'



개인적으로 4번을 많이 사용하게 된다. 누적 석차등에 유용하다.

'IT' 카테고리의 다른 글

[JavaScript] 달력 소스  (0) 2014.03.13
[MSSQL] EXISTS, 조건 검색 처리  (0) 2014.03.12
[API] 무료 도로명 주소 검색 API  (0) 2014.03.11
[RealGrid+] RealGrid+ Components  (0) 2014.03.04
[HTML5] 실전 HTML5 가이드(PDF)  (0) 2014.03.03