학습용 기출·복원자료 분류 확인SQLD · 2023년 50회 SQL 기본 및 활용 · 30번
`SUM(COL)/COUNT(*)`와 `AVG(COL)`의 결과가 달라질 수 있는 경우는?
1
COL이 모두 비NULL인 경우
오답 이유모든 행이 비NULL이면 COUNT(*)와 COUNT(COL)이 같아 두 평균도 같다. 따라서 1번 보기 ‘COL이 모두 비NULL인 경우’의 적용 여부를 문제 조건과 대조해야 한다.
2
행이 한 개이고 COL이 비NULL인 경우
오답 이유한 값의 합을 한 행으로 나누므로 AVG와 동일하다. 따라서 2번 보기 ‘행이 한 개이고 COL이 비NULL인 경우’의 적용 여부를 문제 조건과 대조해야 한다.
3
COL에 NULL이 포함된 경우
정답 근거SUM과 AVG는 COL의 NULL을 제외하지만 COUNT(*)는 NULL 행도 분모에 포함한다. 따라서 NULL이 있으면 직접 나눈 값이 AVG보다 작아질 수 있다. 따라서 3번 보기 ‘COL에 NULL이 포함된 경우’의 적용 여부를 문제 조건과 대조해야 한다.
4
COL 값이 모두 같은 비NULL 값인 경우
오답 이유분모가 같으면 동일한 값들의 평균은 두 식에서 같다. 따라서 4번 보기 ‘COL 값이 모두 같은 비NULL 값인 경우’의 적용 여부를 문제 조건과 대조해야 한다.
ANSWER & EXPLANATION
정답 3번
핵심 판단은 3번 ‘COL에 NULL이 포함된 경우’입니다. SUM과 AVG는 COL의 NULL을 제외하지만 COUNT(*)는 NULL 행도 분모에 포함한다. 따라서 NULL이 있으면 직접 나눈 값이 AVG보다 작아질 수 있다.