다음 SQL 의 실행 결과로 옳은 것은?[일별관객]관이름상영일자관객수A… | [SQLD] SQL 개발자 기출유형 모의고사 9회 상세 페이지

1[SQLD] SQL 개발자 기출유형 모의고사 9회
다음 SQL 의 실행 결과로 옳은 것은?

[일별관객]

관이름상영일자관객수
A관2026-03-01100
A관2026-03-0280
A관2026-03-03120
B관2026-03-0150
B관2026-03-02(null)
B관2026-03-0370
SELECT 관이름, 상영일자,
       SUM(관객수) OVER (PARTITION BY 관이름
                         ORDER BY 상영일자
                         ROWS BETWEEN 1 PRECEDING
                                  AND CURRENT ROW) AS 이동합
  FROM 일별관객
 ORDER BY 관이름, 상영일자;
1
관이름상영일자이동합
A관2026-03-01100
A관2026-03-02180
A관2026-03-03200
B관2026-03-0150
B관2026-03-02(null)
B관2026-03-03(null)
2
관이름상영일자이동합
A관2026-03-01100
A관2026-03-02180
A관2026-03-03300
B관2026-03-0150
B관2026-03-0250
B관2026-03-03120
3
관이름상영일자이동합
A관2026-03-01100
A관2026-03-02180
A관2026-03-03200
B관2026-03-0150
B관2026-03-0250
B관2026-03-0370
4
관이름상영일자이동합
A관2026-03-01100
A관2026-03-02180
A관2026-03-03200
B관2026-03-01170
B관2026-03-0250
B관2026-03-0370
해설

ROWS BETWEEN 1 PRECEDING AND CURRENT ROW 는 파티션 안에서 직전 1행과 현재 행만 더하는 이동 합이라 A관은 100·180·200 이다.

B관 둘째 날은 50 과 NULL 중 NULL 을 건너뛰어 50, 셋째 날은 NULL 과 70 이라 70 이 되며 첫 행은 직전 행이 없어 자기 값이다.

  • 300·120 이 나온 표는 처음부터 누적한 합으로 본 결과이다.
  • B관에 NULL 이 이어지는 표는 SUM 이 NULL 을 전파한다고 본 것이다.
  • B관 첫 행이 170 인 표는 파티션을 무시하고 A관 마지막 행을 더한 것이다.

오류나 개정된 내용이 보이면 알려주세요

이어서 풀어보기

[SQLD] SQL 개발자 기출유형 모의고사 9회 50문항 이어서 보기문제·정답·해설을 한 페이지에서 이어서 볼 수 있어요SQLD SQL 개발자 실전 모의고사 암기장 전체 보기