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

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

[상영]

상영번호영화번호관객수
1M180
2M140
3M160
4M230
5M290
6M3(null)
7M370
8M355
9M4100
SELECT 영화번호, COUNT(*) AS 회차, SUM(관객수) AS 관객
  FROM 상영
 WHERE 관객수 >= 50
 GROUP BY 영화번호
HAVING COUNT(*) >= 2
 ORDER BY 영화번호;
1
영화번호회차관객
M12140
M33125
2
영화번호회차관객
M12140
M2190
M32125
3
영화번호회차관객
M13180
M22120
M33125
4
영화번호회차관객
M12140
M32125
해설

WHERE 가 그룹화보다 먼저 실행되어 관객수 50 미만과 NULL 행(2·4·6)이 빠진 뒤 HAVING 이 남은 행 수를 센다.

그 결과 M1(80·60)과 M3(70·55)만 2회가 되어 남고, M2·M4 는 한 행만 남아 HAVING 에서 탈락한다.

  • M2 는 WHERE 뒤 90 한 행만 남아 COUNT 가 1이므로 결과에 없다.
  • NULL 은 50 이상 비교가 UNKNOWN 이라 M3 의 회차는 3이 아니다.
  • WHERE 를 무시하고 모든 행을 센 결과는 실행 순서와 맞지 않는다.

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

이어서 풀어보기

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