다음 SQL의 실행 결과로 옳은 것은?[직원]직원번호기본급수당13005… | [SQLD] SQL 개발자 기출유형 모의고사 3회 상세 페이지

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

[직원]

직원번호기본급수당
130050
2250(null)
328030
4(null)40
53200
SELECT SUM(기본급 + 수당) AS S1,
       SUM(기본급) + SUM(수당) AS S2,
       COUNT(기본급 + 수당) AS CNT
  FROM 직원;
1
S1S2CNT
9809803
2
S1S2CNT
127012705
3
S1S2CNT
98012703
4
S1S2CNT
98012705
해설

기본급 + 수당은 행마다 먼저 계산되어 어느 한쪽이 NULL 인 직원번호 2·4 는 NULL이 되고, 집계 함수는 이 NULL 을 빼고 계산해 S1=350+310+320=980, CNT=3 이다.

반면 S2 는 열별로 NULL 을 제외해 먼저 합한 뒤 더하므로 1150+120=1270이 된다.

  • NULL 을 0 으로 보면 S1 이 1270, CNT 가 5 가 되지만 실제와 다르다.
  • COUNT(식)은 식이 NULL 인 행을 세지 않아 5 가 아니다.
  • S2 는 열마다 따로 합하므로 S1 과 같은 980 이 아니다.

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

이어서 풀어보기

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