Database/Oracle
오라클 RANK() vs DENSE_RANK() vs ROW_NUMBER()
xProgrammer
2018. 3. 27. 10:31
스키마
http://xprogrammer.tistory.com/333
쿼리
SELECT deptno, empno, ename, sal, RANK() OVER -- 순위를 부여한다.중복된 값이 있을 경우 다음 순서로 ( PARTITION BY deptno -- 분석함수로 계산될 대상의 그룹을 지정 ORDER BY sal desc -- 파티션 안에서의 순서를 지정 ) as rank1, DENSE_RANK() OVER -- 순위를 부여한다.중복된 순위를 무시하고 순서대로 부여 ( PARTITION BY deptno -- 분석함수로 계산될 대상의 그룹을 지정 ORDER BY sal desc -- 파티션 안에서의 순서를 지정 ) as rank2, ROW_NUMBER() OVER -- 순위를 부여한다.중복된 순위 없이 유일한 값으로 ( PARTITION BY deptno -- 분석함수로 계산될 대상의 그룹을 지정 ORDER BY sal desc -- 파티션 안에서의 순서를 지정 ) as rank3 FROM emp;
결과