Oracle 기준으로 다음 SQL을 실행한 결과로 옳은 것은?[수강]학… | [SQLD] SQL 개발자 기출유형 모의고사 1회 상세 페이지

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

[수강]

학번강의코드점수
101DB80
102DB(null)
103DB100
101OS(null)
104OS(null)
105(null)70
SELECT 강의코드, COUNT(*) AS 인원, COUNT(점수) AS 응시,
       SUM(점수) AS 합계, AVG(점수) AS 평균
  FROM 수강
 GROUP BY 강의코드
 ORDER BY 강의코드;
1
강의코드인원응시합계평균
DB3218090
OS20(null)(null)
(null)117070
2
강의코드인원응시합계평균
DB3218060
OS20(null)(null)
(null)117070
3
강의코드인원응시합계평균
DB3218090
OS20(null)(null)
4
강의코드인원응시합계평균
DB3218090
OS2000
(null)117070
해설

집계 함수는 NULL을 제외하므로 DB의 평균은 180/2=90이고, 점수가 모두 NULL인 OS는 COUNT(점수)가 0, SUM·AVG가 NULL이다.

그룹 기준 열의 NULL도 하나의 그룹이 되어 강의코드가 NULL인 행이 따로 나오고, Oracle 오름차순에서는 맨 뒤에 정렬된다.

  • DB 평균을 60으로 둔 표는 NULL을 0으로 보고 3으로 나눴다.
  • OS의 합계·평균을 0으로 둔 표는 값이 없는 SUM을 0으로 착각했다.
  • NULL 그룹을 뺀 표는 GROUP BY가 NULL 키도 묶는다는 점을 놓쳤다.

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

이어서 풀어보기

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