RANK

  • RANK(): 중복 순위 개수만큼 다음 순위 값을 증가
  • DENSE_RANK(): 중복 순위가 존재해도 순차적으로 다음 순위 값을 표시
  • ROW_NUMBER(): 중복 순위 없이 순위 값을 표시
SELECT sal, ename,
RANK() OVER (ORDER BY sal DESC) as rank,
DENSE_RANK() OVER (ORDER BY sal DESC) AS dense_rank,
ROW_NUMBER() OVER (ORDER BY sal DESC) AS row_number,
rownum as "rownum"
FROM emp;
## 결과 값
       SAL ENAME                      RANK DENSE_RANK ROW_NUMBER     rownum
---------- -------------------- ---------- ---------- ---------- ----------
      5000 KING                          1          1          1          9
      3000 FORD                          2          2          2         13
      3000 SCOTT                         2          2          3          8
      2975 JONES                         4          3          4          4
      2850 BLAKE                         5          4          5          6
      2450 CLARK                         6          5          6          7
      1600 ALLEN                         7          6          7          2
      1500 TURNER                        8          7          8         10
      1300 MILLER                        9          8          9         14
      1250 WARD                         10          9         10          3
      1250 MARTIN                       10          9         11          5
      1100 ADAMS                        12         10         12         11
       950 JAMES                        13         11         13         12
       800 SMITH                        14         12         14          1