- percent_rank()
PERCENT_RANK()
OVER (
PARTITION BY expr,...
ORDER BY expr [ASC|DESC],...
)
- 예시 데이터로 job 별로 사원 정보를 급여 기준으로 오름차순으로 백분율 순위를 매겨 나열하면 다음과 같다. 백분율 순위 값의 소숫점 자릿수는 2가 되도록 반올림한다.
SELECT
empno,
ename,
job,
sal,
ROUND(PERCENT_RANK() OVER (PARTITION BY job ORDER BY sal), 2) AS sal_rank
FROM emp
;
| empno | ename | job | sal | sal_rank |
| ----- | ------ | --------- | ---- | -------- |
| 7902 | FORD | ANALYST | 3000 | 0 |
| 7788 | SCOTT | ANALYST | 3000 | 0 |
| 7369 | SMITH | CLERK | 800 | 0 |
| 7900 | JAMES | CLERK | 950 | 0.33 |
| 7876 | ADAMS | CLERK | 1100 | 0.67 |
| 7934 | MILLER | CLERK | 1300 | 1 |
| 7782 | CLARK | MANAGER | 2450 | 0 |
| 7698 | BLAKE | MANAGER | 2850 | 0.5 |
| 7566 | JONES | MANAGER | 2975 | 1 |
| 7839 | KING | PRESIDENT | 5000 | 0 |
| 7654 | MARTIN | SALESMAN | 1250 | 0 |
| 7521 | WARD | SALESMAN | 1250 | 0 |
| 7844 | TURNER | SALESMAN | 1500 | 0.67 |
| 7499 | ALLEN | SALESMAN | 1600 | 1 |
참고