[SQL] RATIO_TO_REPORT()로 전체 대비 비율 간단히 계산하기

Unit·2025년 11월 6일

SQL

목록 보기
47/59

데이터를 집계하다 보면 “전체 대비 비율”을 구할 일이 자주 있습니다.
보통 기본 함수를 사용해 분모 분자를 나눠 계산하기도 하지만, 구조가 더 복잡해지고 가독성이 떨어질 때가 있습니다.

이럴 때 일부 DB(Oracle, Snowflake, Redshift 등)에서 사용할 수 있는 함수가 바로 RATIO_TO_REPORT()입니다.


📊 RATIO_TO_REPORT() 사용 예시

SELECT region
     , SUM(sales) AS total_sales
     , RATIO_TO_REPORT(SUM(sales)) OVER () AS ratio
FROM sales
GROUP BY region;
regiontotal_salesratio
Seoul10000.3333
Busan5000.1667
Daegu15000.5000

⚙️ 설명

RATIO_TO_REPORT(expr) OVER ()
→ 지정한 집계값이 전체 합에서 차지하는 비율을 계산합니다.


정리

✔️ 전체 대비 비율을 구할 때는 RATIO_TO_REPORT() 함수로 간결하게 표현할 수 있습니다.
✔️ 일부 분석 엔진(Oracle, Snowflake, Redshift)에서 지원되며, 이외에는 직접 계산식으로 구현해야 합니다.

profile
협업, 유지보수, 최적화를 고려한 데이터 실무 팁을 정리합니다.

0개의 댓글