오늘은 오라클에서 제공하는 윈도우 함수 중 하나인 RATIO_TO_REPORT에 대해서 알아보려고 한다.
RATIO_TO_REPORT는 비율을 구하는 윈도우 함수로, 문법은 다음과 같다.

RATIO_TO_REPORT(VALUE) OVER (OPTION)
이런식으로 VALUE의 비율을 구하고 싶은 수를 넣으면, 윈도우 함수 RATIO_TO_REPORT에서 계산을 한 뒤에 반환해서 준다.
OVER 안에 OPTION을 지정하지 않으면 전체대비 해당 VALUE의 값의 비율을 계산해서 돌려주고, 만약 전체가 아닌 일부값에 대해 비율을 계산하고 싶다면 다음과 같이 PARTITION BY를 이용해서 지정해 주면 된다.
RATIO_TO_REPORT(COLUM_NAME OR VALUE) OVER(
PARTITION BY
COLUM_NAME2
)
원하는 컬럼을 지정해서 그 지정된 컬럼의 그룹끼리에서의 비율을 계산해서 반환해준다.
아래의 예시는 오라클 HELP CENTER에서 가져왔다. 먼저 쿼리는 다음과 같다.
SELECT last_name, salary, RATIO_TO_REPORT(salary) OVER () AS rr
FROM employees
WHERE job_id = 'PU_CLERK'
ORDER BY last_name, salary, rr;