다음 SQL 의 실행 결과로 옳은 것은?[예매]예매번호상영번호인원110… | [SQLD] SQL 개발자 기출유형 모의고사 9회 상세 페이지

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

[예매]

예매번호상영번호인원
11012
21014
31014
41023
5102(null)
61031
71032
SELECT A.예매번호, A.상영번호, A.인원
  FROM 예매 A
 WHERE A.인원 = (SELECT MAX(B.인원)
                   FROM 예매 B
                  WHERE B.상영번호 = A.상영번호)
 ORDER BY A.예매번호;
1
예매번호상영번호인원
21014
41023
71032
2
예매번호상영번호인원
21014
31014
41023
5102(null)
71032
3
예매번호상영번호인원
21014
31014
4
예매번호상영번호인원
21014
31014
41023
71032
해설

연관 서브쿼리는 바깥 행의 상영번호마다 MAX(인원) 을 다시 구하므로, 상영별 최댓값과 같은 행이 동점까지 모두 남아 4행이다.

상영 101 은 인원 4 인 예매 2·3, 102 는 3 인 예매 4, 103 은 2 인 예매 7 이 남고, 인원이 NULL 인 예매 5 는 비교 결과가 UNKNOWN 이라 빠진다.

  • 예매 2·3 만 남은 표는 상관 조건 없이 전체 최댓값과 비교한 결과이다.
  • 상영별 한 행만 남긴 표는 동점 행을 하나로 줄인 것이다.
  • 예매 5 가 포함된 표는 NULL 과의 비교를 참으로 본 것이다.

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

이어서 풀어보기

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