DB

[MSSQL] RNAK() 함수 SEQ를 주거나 순위를 매길때

조셉LEE 2024. 2. 26. 14:02
728x90
반응형

순위를 매기고 싶을때 사용

 

동일한 순위를 매긴후 담음순위를 동일순위만큼 건너뛰고 줄때

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