다음 SQL의 실행 결과로 옳은 것은? (지점은 본관, 분관 순으로 정… | [SQLD] SQL 개발자 기출유형 모의고사 5회 상세 페이지

1[SQLD] SQL 개발자 기출유형 모의고사 5회
다음 SQL의 실행 결과로 옳은 것은? (지점은 본관, 분관 순으로 정렬된다)

[대출]

대출번호지점회원번호연체료
1본관M1500
2본관M2(null)
3본관M1400
4분관M3(null)
5분관M3(null)
6분관M4600
SELECT 지점,
       COUNT(DISTINCT 회원번호) AS 회원수,
       COUNT(연체료) AS 건수,
       AVG(연체료) AS 평균,
       SUM(연체료) / COUNT(*) AS 환산
  FROM 대출
 GROUP BY 지점
 ORDER BY 지점;
1
지점회원수건수평균환산
본관22300300
분관21200200
2
지점회원수건수평균환산
본관23450300
분관23600200
3
지점회원수건수평균환산
본관22450300
분관21600200
4
지점회원수건수평균환산
본관32450300
분관31600200
해설

본관은 회원 M1·M2 로 회원수 2, 연체료가 있는 2건의 평균 450, 합계 900을 전체 3행으로 나눈 환산 300 이고, 분관은 회원수 2, 건수 1, 평균 600, 환산 200 이다.

AVG는 NULL 을 분모에서 빼지만 SUM(연체료)/COUNT(*) 는 NULL 행도 분모에 넣어 값이 달라진다.

  • 회원수 3은 COUNT(DISTINCT) 의 중복 제거를 무시한 값이다.
  • 평균 300·200 은 NULL 을 0 으로 보고 평균을 낸 값이다.
  • 건수 3은 COUNT(열) 이 NULL 까지 센다고 오해한 값이다.

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

이어서 풀어보기

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