각 Row 에 순위를 부여하는 함수
order by
절의 기준으로 정렬
동일한 값일 경우 같은 순위로 출력
select empno, ename, deptno, sal,
rank() over (order by sal desc) 순위
from emp;
select empno, ename, deptno, sal,
rank() over (partition by deptno order by sal desc) 순위
from emp;
RANK()와 모든 기능이 같음
DENSE_RANK()
: 동일한 값일 경우 갯수와 상관없이 다음 순위 +1RANK()
: 동일한 값일 경우 갯수를 고려해서 +nselect empno, ename, deptno, sal,
dense_rank() over (order by sal desc) 순위1번,
rank() over (order by sal desc) 순위2번
from emp;
RANK()와 모든 기능이 같음
select empno, ename, deptno, sal,
dense_rank() over (order by sal desc) 순위1번,
rank() over (order by sal desc) 순위2번,
row_number() over (order by sal desc) 순위3번
from emp;
NTILE(arg)
은 order by
절 기준을 따라서arg
개 만큼 그룹으로 나누는 함수
select ename, sal,
ntile(3) over (order by sal desc)
from emp;