반응형
순위를 매기고 싶을때 사용
동일한 순위를 매긴후 담음순위를 동일순위만큼 건너뛰고 줄때
RANK() OVER(ORDER BY 점수))
WITH CTE AS
(
SELECT 100 AS A UNION
SELECT 90 AS A UNION
SELECT 90 AS A UNION
SELECT 90 AS A UNION
SELECT 90 AS A UNION
SELECT 70 AS A UNION
)
SELECT RANK() OVER(ORDER BY A) FROM CTE
1 100
2 90
2 90
2 90
5 80
6 70
동일한 순위를 매긴후 다음순위를 연속적으로 줄때
DENSE_RANK() OVER(ORDER BY 점수))
WITH CTE AS
(
SELECT 100 AS A UNION
SELECT 90 AS A UNION
SELECT 90 AS A UNION
SELECT 90 AS A UNION
SELECT 90 AS A UNION
SELECT 70 AS A UNION
)
SELECT DENSE_RANK() OVER(ORDER BY A) FROM CTE
1 100
2 90
2 90
2 90
3 80
4 70
반응형
LIST
'DB' 카테고리의 다른 글
테이블 구조를 변경하고자 할때 (0) | 2024.03.01 |
---|---|
프로시져 오류처리 방법 (1) | 2024.02.29 |
UNPIVOT 숫자 형 변환 오류 (1) | 2024.02.25 |
MSSQL 과 ORACLE 함수 비교 (1) | 2024.02.25 |
프로시져 cursor 상태 확인 (0) | 2024.02.24 |