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

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

대출

대출번호회원번호연체일반납일
11102026-03-10
212352026-03-20
31310(null)
411(null)(null)
51425(null)
SELECT COUNT(*) AS CNT, SUM(연체일) AS S, MAX(연체일) AS M
  FROM 대출
 WHERE 반납일 IS NULL
   AND 연체일 > 30;
1
CNTSM
000
2
CNTSM
13535
3
CNTSM
0(null)(null)
4
CNTSM
해설

GROUP BY 가 없는 집계 쿼리는 조건을 만족하는 행이 없어도 항상 한 행을 돌려주며, 이때 COUNT(*)는 0, SUM·MAX 는 NULL이다.

반납일이 NULL 인 대출은 연체일이 10, NULL, 25뿐이라 30 초과가 없고, 연체일 35인 대출은 이미 반납되어 WHERE 에서 제외된다.

  • 결과 행이 없다고 본 것은 GROUP BY 가 있을 때의 동작과 혼동한 것이다.
  • SUM·MAX 를 0으로 본 것은 빈 집합의 집계가 NULL 이라는 점을 놓쳤다.
  • 연체일 35인 행을 센 것은 반납일 조건을 빠뜨린 것이다.

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

이어서 풀어보기

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