본문 바로가기
SQL(쿼리)

Oracle RANK 함수

by 취미툰 2021. 7. 6.
반응형

순위를 구하게 해주는 함수입니다.

 

RANK() OVER() : 동일 순위인 경우 1,1,3 형식으로 출력

ROW_NUMBER() OVER() 동일순위인 경우 1,2,3 형식으로 출력

DENSE_RANK() OVER() 동일 순위인 경우 1,1,2 형식으로 출력

 

사용법

SELECT 문에서 사용할 수 있음

OVER() 내에서 partition by 절과 order by 절 사용 가능

 

예제

EMP 테이블에서 부서 번호(DEPTNO)별로 부서 내에서 급여가 가장 많은 순서대로 보여주는 쿼리를 작성하세요

 

SQL> select empno,deptno,sal,rank() over (partition by deptno order by sal desc) as seq
from emp;

EMPNO DEP SAL       SEQ        
----- --- --------- -----------
 7839  10      5000           1
 7782  10      2450           2
 7934  10      1300           3
 7788  20      3000           1
 7902  20      3000           1
 7566  20      2975           3
 7876  20      1100           4
 7369  20       800           5
 7698  30      2850           1
 7499  30      1600           2
 7844  30      1500           3
 7654  30      1250           4
 7521  30      1250           4
 7900  30       950           6

14 rows selected.

 

 

반응형

댓글