D-54-데이터분석-MySQL

박초화·2024년 2월 27일
  1. 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        |

참고

profile
도전적인 개발자

0개의 댓글