다음 SQL의 실행 결과로 옳은 것은? (지점은 본관, 분관 순으로 정… | [SQLD] SQL 개발자 기출유형 모의고사 5회 상세 페이지
1[SQLD] SQL 개발자 기출유형 모의고사 5회
다음 SQL의 실행 결과로 옳은 것은? (지점은 본관, 분관 순으로 정렬된다)[대출]
| 대출번호 | 지점 | 회원번호 | 연체료 |
|---|---|---|---|
| 1 | 본관 | M1 | 500 |
| 2 | 본관 | M2 | (null) |
| 3 | 본관 | M1 | 400 |
| 4 | 분관 | M3 | (null) |
| 5 | 분관 | M3 | (null) |
| 6 | 분관 | M4 | 600 |
SELECT 지점,
COUNT(DISTINCT 회원번호) AS 회원수,
COUNT(연체료) AS 건수,
AVG(연체료) AS 평균,
SUM(연체료) / COUNT(*) AS 환산
FROM 대출
GROUP BY 지점
ORDER BY 지점;1
| 지점 | 회원수 | 건수 | 평균 | 환산 |
|---|---|---|---|---|
| 본관 | 2 | 2 | 300 | 300 |
| 분관 | 2 | 1 | 200 | 200 |
2
| 지점 | 회원수 | 건수 | 평균 | 환산 |
|---|---|---|---|---|
| 본관 | 2 | 3 | 450 | 300 |
| 분관 | 2 | 3 | 600 | 200 |
3
| 지점 | 회원수 | 건수 | 평균 | 환산 |
|---|---|---|---|---|
| 본관 | 2 | 2 | 450 | 300 |
| 분관 | 2 | 1 | 600 | 200 |
4
| 지점 | 회원수 | 건수 | 평균 | 환산 |
|---|---|---|---|---|
| 본관 | 3 | 2 | 450 | 300 |
| 분관 | 3 | 1 | 600 | 200 |
해설
본관은 회원 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 까지 센다고 오해한 값이다.
오류나 개정된 내용이 보이면 알려주세요