다음 SQL의 결과에서 누적 열 값을 위에서부터 차례로 나열한 것은?[… | [SQLD] SQL 개발자 기출유형 모의고사 1회 상세 페이지
1[SQLD] SQL 개발자 기출유형 모의고사 1회
다음 SQL의 결과에서 누적 열 값을 위에서부터 차례로 나열한 것은?[일매출]
| 지점 | 일자 | 금액 |
|---|---|---|
| 강남 | 2026-03-01 | 10 |
| 강남 | 2026-03-02 | 20 |
| 강남 | 2026-03-02 | 5 |
| 강남 | 2026-03-03 | 7 |
| 판교 | 2026-03-01 | 30 |
| 판교 | 2026-03-03 | 10 |
SELECT 지점, 일자, 금액,
SUM(금액) OVER (PARTITION BY 지점
ORDER BY 일자) AS 누적
FROM 일매출
ORDER BY 지점, 일자, 금액;1
10, 35, 35, 42, 30, 40
2
10, 15, 35, 42, 30, 40
3
10, 35, 35, 42, 72, 82
4
40, 65, 65, 82, 40, 82
해설
윈도우 절 없이 ORDER BY 만 주면 기본 프레임이 RANGE UNBOUNDED PRECEDING이라, 강남 3월 2일 두 행은 같은 일자 전체를 포함한 35를 함께 받는다.
강남은 10, 35, 35, 42 로 누적되고 PARTITION BY 지점 때문에 판교에서 다시 시작해 30, 40 이 된다.
- 10, 15 로 이어지는 값은 행 단위 ROWS 프레임으로 계산한 것이다.
- 40, 65 로 시작하는 값은 지점 구분 없이 일자로만 누적한 것이다.
- 판교가 72, 82 가 되는 것은 파티션에서 누적이 초기화되는 점을 놓친 것이다.
오류나 개정된 내용이 보이면 알려주세요