다음 SQL의 실행 결과로 옳은 것은?[강좌]강좌번호강사번호수강료1T1… | [SQLD] SQL 개발자 기출유형 모의고사 7회 상세 페이지

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

[강좌]

강좌번호강사번호수강료
1T1120
2T180
3T1100
4T2150
5T290
6T3110
7T3130
8T3(null)
SELECT 강사번호, COUNT(*) AS 강좌수, SUM(수강료) AS 합계
  FROM 강좌
 WHERE 수강료 >= 100
 GROUP BY 강사번호
HAVING COUNT(*) >= 2
 ORDER BY 강사번호;
1
강사번호강좌수합계
T12220
T21150
T32240
2
강사번호강좌수합계
T13300
T22240
T33240
3
강사번호강좌수합계
T12220
T33240
4
강사번호강좌수합계
T12220
T32240
해설

WHERE 가 그룹화 전에 수강료 100 이상 행만 남기므로 T1 은 120·100, T2 는 150, T3 는 110·130 만 집계되고(NULL 은 비교가 UNKNOWN 이라 제외) 이어서 HAVING 이 2건 이상인 그룹만 남긴다.

그래서 1건뿐인 T2 가 빠지고 T1(2건, 220)과 T3(2건, 240) 두 행이 나온다.

  • HAVING 을 무시하면 1건인 T2 까지 결과에 남는다.
  • 수강료가 NULL 인 행은 WHERE 에서 이미 빠져 T3 의 건수는 3 이 아니다.
  • WHERE 를 무시하고 전체 행을 세면 건수와 합계가 모두 커진다.

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

이어서 풀어보기

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