진료비 테이블에 대해 다음 SQL 을 실행한 결과로 옳은 것은?진료비진… | [SQLD] SQL 개발자 기출유형 모의고사 2회 상세 페이지

1[SQLD] SQL 개발자 기출유형 모의고사 2회
진료비 테이블에 대해 다음 SQL 을 실행한 결과로 옳은 것은?

진료비

진료번호기본료검사료
1100005000
28000(null)
3(null)3000
4120002000
59000(null)
SELECT SUM(기본료 + 검사료) AS A,
       SUM(기본료) + SUM(검사료) AS B,
       COUNT(검사료) AS C
  FROM 진료비;
1
ABC
49000490003
2
ABC
29000290003
3
ABC
29000490005
4
ABC
29000490003
해설

행 단위 덧셈은 한쪽이 NULL 이면 결과가 NULL이 되어 SUM 에서 빠지므로 A 는 두 값이 모두 있는 행의 합 15000+14000=29000이다.

B 는 열마다 NULL 을 제외하고 먼저 합한 39000+10000=49000이고, COUNT(열)은 NULL 이 아닌 3건만 센다.

  • A 를 49000으로 본 것은 NULL 을 0처럼 더한 오해다.
  • B 를 29000으로 본 것은 열별 집계가 NULL 을 먼저 제외한다는 점을 놓쳤다.
  • C 를 5로 본 것은 COUNT(*)와 COUNT(열)을 혼동한 것이다.

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

이어서 풀어보기

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