본문 바로가기
✨ DBMS/etc

[SQL] 순위 함수 - RANK(), DENSE_RANK(), ROW_NUMBER()

by 환풍 2023. 8. 2.
728x90
반응형

RANK() , DENSE_RANK(),  ROW_NUMBER() 

1
2
3
4
5
6
7
8
9
10
11
SELECT ENAME, SAL, RANK() OVER(ORDER BY SAL DESC)RK
FROM EMP
LIMIT 5;
 
SELECT ENAME, SAL, DENSE_RANK() OVER(ORDER BY SAL DESC)RK
FROM EMP
LIMIT 5;
 
SELECT ENAME, SAL, ROW_NUMBER() OVER(ORDER BY SAL DESC)RK
FROM EMP
LIMIT 5;
cs

 

RANK() OVER( )

먼저 RANK에 대해 알아보자. 

RANK는 동일한 데이터는 같은 순위를 매긴다. SAL에 3000이 두개이므로, 공동 3위를 주고, 4위를 건너뛴 5위가 나온다.


DENSE_RANK() OVER( )

두번째로, DENSE_RANK는 RANK와 함께 동일 데이터를 같은 순위에 매긴다.

하지만, RANK에서는 공동 숫자만큼 다음 숫자를 넘겼지만, DENSE_RANK같은 경우, 숫자를 건너뛰지 않고 출력한다.

 


ROW_NUMBER() OVER( )

마지막으로, ROW_NUMBER는 중복 허용없이 순위가 나온다. 즉, 무조건 순위가 나오는 것이다.

 

728x90
반응형

댓글