더북(TheBook)

③ RATIO_TO_REPORT (expr)

RATIO_TO_REPORT 함수는 주어진 그룹에 대해 expr 값의 합을 기준으로 각 로우의 상대적 비율을 반환하는 함수다. 30, 90번 부서 사원의 급여가 해당 부서 전체를 기준으로 몇 퍼센트인지 추출해 보자.

입력

    SELECT department_id, emp_name, hire_date, salary,
           ROUND(RATIO_TO_REPORT(salary) OVER (PARTITION BY department_id
                                    ),2) * 100 AS salary_percent
      FROM employees
     WHERE department_id IN (30, 90);
그림 7-33 RATIO_TO_REPORT 함수

부서별로 파티션을 나눈 뒤 RATIO_TO_REPORT 함수를 사용해 급여의 비율을 구했다. 30번 부서에서는 가장 많은 급여를 받는 Den이 부서 전체 급여를 기준으로 대략 44%를 차지하는 것을 알 수 있다.

지금까지 고급 SQL 문장에 대해 살펴 보았는데, 처음 접하는 독자 입장에서는 좀 어려운 개념일 수 있다. 책에 나온 내용을 토대로 기본 개념을 습득하고 다양하게 응용해 보면 생각보다는 어렵지 않게 자신의 것으로 소화해 낼 수 있을 것이다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.