문제
다음 [거래] 테이블에서 SQL문을 실행했을 때 고객ID='C002'이고 분기='Q1'인 행의 ratio_value 값을 소수점 셋째 자리에서 반올림하여 쓰시오.
| 고객ID | 분기 | 거래량 |
|---|---|---|
| C001 | Q1 | 450 |
| C001 | Q2 | 320 |
| C001 | Q3 | 580 |
| C002 | Q1 | 240 |
| C002 | Q2 | 360 |
| C003 | Q1 | 180 |
| C003 | Q2 | 420 |
SQLSELECT 고객ID, 분기, 거래량, RATIO_TO_REPORT(거래량) OVER (PARTITION BY 고객ID) AS ratio_value FROM 거래 WHERE 분기 IN ('Q1', 'Q2') ORDER BY 고객ID, 분기;
정답
0.40
0.400.440%
해설
RATIO_TO_REPORT 함수는 파티션 내 총합 대비 각 행의 비율을 계산합니다. WHERE 조건에 의해 Q1, Q2만 필터링됩니다. C002 고객의 경우: Q1=240, Q2=360으로 총합=600입니다. C002의 Q1 행(거래량=240)의 비율은 240/600 = 0.4입니다. 소수점 셋째 자리에서 반올림하면 0.40입니다.