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

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

[상영]

상영번호상영관관객수
1IMAX120
2IMAX(null)
32D90
4IMAX200
5(null)150
62D(null)
SELECT COUNT(*) AS 회차,
       COUNT(관객수) AS 집계,
       SUM(관객수) AS 합계
  FROM 상영
 WHERE 상영관 = 'IMAX'
HAVING SUM(관객수) > 300;
1
회차집계합계
32320
2
회차집계합계
33320
3
회차집계합계
4
회차집계합계
22320
해설

WHERE 로 IMAX 세 행(120·NULL·200)만 남고, GROUP BY 가 없으므로 이 세 행 전체가 하나의 그룹이 되어 HAVING 합계 320 > 300 이 참이라 1행이 나온다.

COUNT(*)는 NULL 행도 세어 3, COUNT(관객수)는 NULL 을 빼 2이며 SELECT 에는 집계 함수만 있어 그룹 키 없이도 실행된다.

  • COUNT(관객수)는 NULL 을 세지 않으므로 3이 아니다.
  • COUNT(*)는 관객수가 NULL 인 행도 포함하므로 2가 아니다.
  • HAVING 은 GROUP BY 없이도 전체를 한 그룹으로 보고 평가하므로 0행이 아니다.

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

이어서 풀어보기

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