RANK
RANK 함수는 ORDER BY 를 포함한 QUERY 문에서 특정 항목(컬럼)에 대한 순위를 구하는 함수.
특정 범위(PARTITION) 내에서 순위를 구할 수도 있고 데이터에 대한 순위를 구할 수 도 있음. 동일한 값에 대해서는 동일한 순위를 부여함.
EX) 사원 데이터에서 급여가 높은 순서와 JOB 별로 급여가 높은 순서를 같이 출력
select job,ename,sal,
RANK() OVER (ORDER BY sal DESC) ALL_RANK,
RANK() OVER (PARTITION BY JOB ORDER BY sal DESC) JOB_RANK
FROM emp;
DENSE_RANK
RANK 함수와 비슷하나, 동일한 순위를 하나의 건수로 취급하는 것이 다름.
EX) 사원데이터에서 급여가 높은 순서대로 출력
select job,ename,sal,
rank() over ( order by sal desc) as rank,
dense_rank() over ( order by sal desc) as dense_rank
from emp;
ROW_NUMBER
동일한 값이라도 고유한 순위를 부여함.
만일 동일한 값에 대한 순서까지 관리하고 싶으면 ROW_NUMBER() over ( order by sal desc, ename) as dense_rank 과 같이 ORDER BY 절을 이용하면 된다.
EX) 급여가 높은 순서대로 출력
select job,ename,sal,
rank() over ( order by sal desc) as rank,
ROW_NUMBER() over ( order by sal desc) as dense_rank
from emp;
'SQLD > SQL 기본 및 활용' 카테고리의 다른 글
윈도우 함수(WINDOW FUNCTION) 5 - 그룹 내 비율 함수 (1) | 2019.07.04 |
---|---|
윈도우 함수(WINDOW FUNCTION) 4 - 그룹 내 행 순서 함수 (0) | 2019.07.04 |
윈도우 함수(WINDOW FUNCTION) 3 - 일반 집계 함수 (0) | 2019.07.04 |
윈도우 함수(WINDOW FUNCTION) 1 - 종류 및 문법 (0) | 2019.07.04 |