다음 결과를 얻기 위해 ( ㉠ )에 들어갈 내용으로 옳은 것은?[대출]… | [SQLD] SQL 개발자 기출유형 모의고사 5회 상세 페이지
1[SQLD] SQL 개발자 기출유형 모의고사 5회
다음 결과를 얻기 위해 ( ㉠ )에 들어갈 내용으로 옳은 것은?[대출]
| 대출번호 | 회원번호 | 대출일 | 연체료 |
|---|---|---|---|
| 1 | 10 | 2026-03-02 | 300 |
| 2 | 20 | 2026-03-03 | 500 |
| 3 | 10 | 2026-03-05 | 200 |
| 4 | 20 | 2026-03-08 | 0 |
| 5 | 10 | 2026-03-09 | 400 |
| 6 | 30 | 2026-03-10 | 100 |
SELECT 회원번호, 대출일, 연체료,
SUM(연체료) OVER ( ㉠ ) AS 누적
FROM 대출
ORDER BY 회원번호, 대출일;[결과]
| 회원번호 | 대출일 | 연체료 | 누적 |
|---|---|---|---|
| 10 | 2026-03-02 | 300 | 300 |
| 10 | 2026-03-05 | 200 | 500 |
| 10 | 2026-03-09 | 400 | 900 |
| 20 | 2026-03-03 | 500 | 500 |
| 20 | 2026-03-08 | 0 | 500 |
| 30 | 2026-03-10 | 100 | 100 |
1
PARTITION BY 회원번호 ORDER BY 대출일
2
PARTITION BY 회원번호
3
ORDER BY 대출일
4
PARTITION BY 대출일
해설
결과의 누적 값이 회원이 바뀔 때마다 새로 시작하고 대출일 순으로 쌓이므로 PARTITION BY 회원번호 ORDER BY 대출일 이 정답이다.
ORDER BY 가 있으면 기본 프레임이 파티션 처음부터 현재 행까지라 회원번호 10 은 300·500·900, 연체료 0 이 있는 20 은 500·500 이 된다.
ORDER BY 대출일만 쓰면 회원 구분 없이 전체 일자 순으로 누적된다.PARTITION BY 회원번호만 쓰면 회원별 총합 하나가 모든 행에 반복된다.PARTITION BY 대출일은 대출일이 모두 달라 각 행의 연체료가 그대로 나온다.
오류나 개정된 내용이 보이면 알려주세요