SQL(쿼리)
Oracle RANK 함수
취미툰
2021. 7. 6. 09:06
반응형
순위를 구하게 해주는 함수입니다.
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.
반응형