다음 SQL 이 [결과]를 내도록 ㉠에 들어갈 구문으로 옳은 것은?[운… | [SQLD] SQL 개발자 기출유형 모의고사 4회 상세 페이지
1[SQLD] SQL 개발자 기출유형 모의고사 4회
다음 SQL 이 [결과]를 내도록 ㉠에 들어갈 구문으로 옳은 것은?[운항실적]
| 편명 | 운항일 | 탑승객수 |
|---|---|---|
| KE101 | 2026-03-01 | 120 |
| KE101 | 2026-03-02 | 150 |
| KE101 | 2026-03-03 | 90 |
| KE101 | 2026-03-04 | 200 |
| OZ330 | 2026-03-01 | 80 |
| OZ330 | 2026-03-02 | 100 |
| OZ330 | 2026-03-03 | 60 |
SELECT 편명, 운항일, 탑승객수,
SUM(탑승객수) OVER (PARTITION BY 편명
ORDER BY 운항일
( ㉠ )) AS 합계
FROM 운항실적
ORDER BY 편명, 운항일;[결과]
| 편명 | 운항일 | 탑승객수 | 합계 |
|---|---|---|---|
| KE101 | 2026-03-01 | 120 | 120 |
| KE101 | 2026-03-02 | 150 | 270 |
| KE101 | 2026-03-03 | 90 | 240 |
| KE101 | 2026-03-04 | 200 | 290 |
| OZ330 | 2026-03-01 | 80 | 80 |
| OZ330 | 2026-03-02 | 100 | 180 |
| OZ330 | 2026-03-03 | 60 | 160 |
1
ROWS UNBOUNDED PRECEDING
2
ROWS BETWEEN 1 PRECEDING AND CURRENT ROW
3
ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING
4
ROWS BETWEEN CURRENT ROW AND 1 FOLLOWING
해설
합계가 KE101 에서 120, 270, 240, 290 으로 직전 1행과 현재 행만 더하고 OZ330 에서 80부터 다시 시작하므로 1 PRECEDING AND CURRENT ROW 이다.
PARTITION BY 로 편명이 바뀌면 프레임이 새로 시작되어, 각 편의 첫 운항일은 앞 행이 없어 자기 값만 합계가 된다.
- UNBOUNDED PRECEDING 이면 처음부터 누적해 KE101 셋째 날이 360 이 된다.
- CURRENT ROW AND 1 FOLLOWING 이면 첫 행이 270 이 되어 결과와 다르다.
- 1 PRECEDING AND 1 FOLLOWING 이면 둘째 날이 360 이 되어 결과와 다르다.
오류나 개정된 내용이 보이면 알려주세요