문제
다음 [주문] 테이블에서 SQL문을 실행했을 때, 고객ID가 'C002'이고 금액이 15000인 행의 pct_rank 값을 소수점 둘째 자리까지 쓰시오.
| 고객ID | 주문일 | 금액 |
|---|---|---|
| C001 | 2023-01-15 | 12000 |
| C002 | 2023-01-20 | 15000 |
| C002 | 2023-02-10 | 18000 |
| C001 | 2023-02-15 | 15000 |
| C003 | 2023-03-01 | 20000 |
SQLSELECT 고객ID, 금액, PERCENT_RANK() OVER (ORDER BY 금액) AS pct_rank FROM 주문;
정답
0.25
0.25
해설
PERCENT_RANK()는 (RANK-1)/(총행수-1)로 계산된다. 금액 순으로 정렬하면 12000(1위), 15000(2위, 동점), 15000(2위, 동점), 18000(4위), 20000(5위)가 된다. 고객ID 'C002'이고 금액이 15000인 행의 RANK는 2이므로 PERCENT_RANK = (2-1)/(5-1) = 1/4 = 0.25이다.