다음 SALES 데이터와 SQL을 실행했을 때 출력되는 네 행을 위에서부터 그대로 쓰시오. 열 사이는 한 칸으로 구분한다.
| region | sales_year | amount |
|---|---|---|
| A | 2025 | 30 |
| A | 2026 | 20 |
| B | 2025 | 40 |
| B | 2026 | 40 |
SELECT region, amount,
SUM(amount) OVER (
PARTITION BY region
ORDER BY sales_year
ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
) AS running_total
FROM SALES
ORDER BY region, sales_year;모범답안
A 30 30 A 20 50 B 40 40 B 40 80
풀이와 판단 근거
PARTITION BY region은 A와 B를 서로 독립된 계산 구간으로 나눈다. 각 구간 안에서는 sales_year 순서로 현재 행까지 amount를 누적하므로 A의 누적값은 30, 50이고 B의 누적값은 40, 80이다.
윈도 함수는 GROUP BY처럼 행을 합치지 않기 때문에 원래 네 행이 모두 유지되며 마지막 ORDER BY가 출력 순서를 확정한다.
자주 틀리는 지점
- 전체 지역을 하나의 구간으로 계산
- 각 지역의 최종 합계만 두 행으로 출력
- 두 번째 B행의 누적값을 40으로 유지
자동 판정 방식
한글·영문 동의어와 문항별 필수 개념을 확인하며, 정답 단어가 부정되거나 반대 개념과 함께 쓰이면 자동 정답으로 확정하지 않습니다. 부분점수는 ITPASSLAB의 학습용 예상 점수입니다.