What we have to do is to be forever curiously
testing new opinions and courting new impressions

우리가 해야 할 일은 끊임없이 호기심을 갖고
새로운 생각을 시험해보고 새로운 인상을 받는 것

Oracle 비율 함수 RATIO_TO_REPORT()에 대해

  • RATIO_TO_REPORT() 함수란
  • 사용방법
  • 사용예제
  • 주의사항

RATIO_TO_REPORT() 함수란

분석 함수(Analytic Function)의 한 종류로, 결과 집합의 각 행에 대해 특정 값의 비율을 계산하는 데 사용된다.

이 함수는 전체 그룹 내에서 해당 Row가 차지하는 비율을 반환한다.


사용방법

기본 문법은 아래와 같다.

RATIO_TO_REPORT(value) OVER (구분기준partitionn_clause)
  • 값value: 비율을 계산할 대상 컬럼 또는 값
  • 구분기준partition_clause: 결과를 구분 짓는 기준을 정의하는 절(PARTITION BY절을 사용하여 서브셋으로 나누고, 각각에 대해 비율을 계산)


사용예제

각 부서별로 직원들의 급여가 전체 부서 급여에서 차지하는 비율을 계산할 때 다음과 같이 사용한다.

SELECT department_id, 
       employee_id, 
       salary,
       RATIO_TO_REPORT(salary) OVER (PARTITION BY department_id) AS salary_ratio
FROM employees;

직원employees 테이블에서 각 부서department_id별로 직원들의 급여salary가 전체 부서 급여에서 차지하는 비율salary_ratio을 계산한다.

여기서 RATIO_TO_REPORT(salary) OVER (PARTITION BY department_id)는 각 부서 내에서 해당 급여의 전체 대비 비율을 계산한다.


주의사항

RATIO_TO_REPORT() 함수는 그룹 내 각 Row 값이 전체 합에 대한 비율을 계산하기 때문에, 전체 합이 0인 경우 결과가 정의되지 않을 수 있다.


댓글남기기