-RANK() WITHIN GROUP (ORDER BY)
RANK() : 순위를 표현할 때 사용하는 함수
RANK(조건값) WITHIN GROUP (ORDER BY 조건값 컬럼명) : 특정 데이터의 순위 확인하기
[주의] RANK 뒤에 나오는 데이터와 ORDER BY 뒤에 나오는 데이터는 같은 컬럼이어야 된다.
SELECT RANK('SMITH') WITHIN GROUP(ORDER BY ename) "RANK" FROM emp; --defalut가 오름차순
-RANK() OVER(PARTITION BY ORDER BY)
RANK() OVER(ORDER BY 컬럼명) : 전체순위 보기
사원들의 empno,ename,sal,급여 순위를 출력
SELECT empno,ename,sal , RANK() OVER(ORDER BY sal DESC) FROM emp; --내림차순
10번부서에 속한 직원들의 사번과 이름,급여,해당 부서 내의 급여 순위 출력
SELECT empno,ename,sal, RANK() OVER(ORDER BY sal DESC) "RANK" FROM emp WHERE deptno =10;
emp테이블을 조회하여 사번,이름,급여,부서번호,부서별 급여 순위를 출력
SELECT empno,ename,sal,deptno,RANK() OVER(PARTITION BY deptno --PARTITION BY(컬럼명):그룹으로 만드는법
ORDER BY sal DESC) "RANK" FROM emp;
emp테이블에서 같은 부서내의 job별로 급여 순위,empno,ename,sal,deptno,job을 출력
SELECT empno,ename,sal,deptno,job, RANK() OVER(PARTITION BY deptno, job ORDER BY sal DESC) "RANK" FROM emp;