문제
다음 [점수] 테이블에서 SQL문을 실행했을 때, 이름이 '박'인 행의 cum_sum 값을 쓰시오.
| 이름 | 과목 | 점수 |
|---|---|---|
| 김 | 수학 | 85 |
| 이 | 수학 | 90 |
| 박 | 수학 | 75 |
| 최 | 영어 | 95 |
| 정 | 영어 | 80 |
SQLSELECT 이름, 과목, 점수, SUM(점수) OVER (PARTITION BY 과목 ORDER BY 점수 DESC ROWS UNBOUNDED PRECEDING) AS cum_sum FROM 점수;
정답
250
250
해설
PARTITION BY 과목으로 수학/영어 과목별로 분할되고, ORDER BY 점수 DESC로 점수 내림차순 정렬된다. 수학 과목에서는 이(90) → 김(85) → 박(75) 순으로 정렬되며, ROWS UNBOUNDED PRECEDING으로 첫 번째 행부터 현재 행까지의 누적합을 구한다. 박의 cum_sum = 90 + 85 + 75 = 250이다.