다음 SQL 의 결과로 옳은 것은?[일별대출]대출일건수2026-03-0… | [SQLD] SQL 개발자 기출유형 모의고사 5회 상세 페이지
1[SQLD] SQL 개발자 기출유형 모의고사 5회
다음 SQL 의 결과로 옳은 것은?[일별대출]
| 대출일 | 건수 |
|---|---|
| 2026-03-01 | 4 |
| 2026-03-02 | 6 |
| 2026-03-03 | 2 |
| 2026-03-04 | 5 |
| 2026-03-05 | 3 |
SELECT 대출일,
SUM(건수) OVER (ORDER BY 대출일
ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING) AS 이동합,
LAST_VALUE(건수) OVER (ORDER BY 대출일
ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING) AS 마지막
FROM 일별대출
ORDER BY 대출일;1
| 대출일 | 이동합 | 마지막 |
|---|---|---|
| 2026-03-01 | 10 | 4 |
| 2026-03-02 | 12 | 6 |
| 2026-03-03 | 13 | 2 |
| 2026-03-04 | 10 | 5 |
| 2026-03-05 | 8 | 3 |
2
| 대출일 | 이동합 | 마지막 |
|---|---|---|
| 2026-03-01 | 4 | 3 |
| 2026-03-02 | 10 | 3 |
| 2026-03-03 | 8 | 3 |
| 2026-03-04 | 7 | 3 |
| 2026-03-05 | 8 | 3 |
3
| 대출일 | 이동합 | 마지막 |
|---|---|---|
| 2026-03-01 | (null) | 3 |
| 2026-03-02 | 12 | 3 |
| 2026-03-03 | 13 | 3 |
| 2026-03-04 | 10 | 3 |
| 2026-03-05 | (null) | 3 |
4
| 대출일 | 이동합 | 마지막 |
|---|---|---|
| 2026-03-01 | 10 | 3 |
| 2026-03-02 | 12 | 3 |
| 2026-03-03 | 13 | 3 |
| 2026-03-04 | 10 | 3 |
| 2026-03-05 | 8 | 3 |
해설
ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING 은 앞·현재·뒤 행 최대 3행을 합하며, 첫 행과 마지막 행은 있는 2행만 더해 10과 8이 된다.
LAST_VALUE 의 프레임을 UNBOUNDED FOLLOWING 까지 넓혔으므로 모든 행에서 마지막 날 건수 3이 나온다.
- 양 끝을 NULL 로 둔 표는 프레임 행이 모자라면 NULL 이 된다고 본 경우이다.
- 마지막 열이 건수와 같은 표는 기본 프레임처럼 현재 행에서 끝난다고 본 결과이다.
- 이동합이 4·10·8 로 시작하는 표는 1 FOLLOWING 을 빼고 앞 행과 현재 행만 더한 결과이다.
오류나 개정된 내용이 보이면 알려주세요