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
반응형
'✨ DBMS > etc' 카테고리의 다른 글
[DB] 데이터베이스의 특징, 키(Key), 이상 현상, 함수 종속 (0) | 2023.08.02 |
---|---|
[SQL] 분석함수(윈도함수) OVER( ), PARTITION BY, ORDER BY (0) | 2023.08.02 |
[SQL/MySQL] 트랜잭션 COMMIT, ROLLBACK, SAVEPOINT 사용법 (0) | 2023.08.01 |
[SQL] 서브 쿼리 - (인라인 뷰, 스칼라) - SELECT, FROM (0) | 2023.07.31 |
[SQL] 서브 쿼리 ( 단일 행 VS 다중 행 ) - WHERE(Nested) (0) | 2023.07.26 |
댓글