문제
다음 [매출] 테이블에서 SQL문을 실행했을 때, 부서가 'B'이고 이름이 '최'인 행의 running_total 값을 쓰시오.
| 이름 | 부서 | 월 | 금액 |
|---|---|---|---|
| 김 | A | 1 | 100 |
| 이 | A | 2 | 150 |
| 박 | B | 1 | 200 |
| 최 | B | 2 | 250 |
| 정 | B | 3 | 180 |
SQLSELECT 이름, 부서, 월, 금액, SUM(금액) OVER (PARTITION BY 부서 ORDER BY 월 ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS running_total FROM 매출;
정답
450
450
해설
SUM() OVER 윈도우 함수에서 ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW는 파티션의 첫 번째 행부터 현재 행까지의 누적합을 계산한다. 부서 B에서 월 순서대로: 박(1월, 200), 최(2월, 250), 정(3월, 180). 최의 running_total은 박(200) + 최(250) = 450이다.