학습용 기출·복원자료 분류 확인SQLD · 2023년 49회 SQL 기본 및 활용 · 35번
C2에 NULL이 있을 때 `SUM(C2)/COUNT(*)`, `SUM(C2)/COUNT(C2)`, `AVG(C2)`의 관계로 옳은 것은?
1
세 식은 항상 모두 같다.
오답 이유C2에 NULL이 있으면 COUNT(*)와 COUNT(C2)의 분모가 달라 첫 식이 달라질 수 있다. 따라서 1번 보기 ‘세 식은 항상 모두 같다.’의 적용 여부를 문제 조건과 대조해야 한다.
2
두 번째 식과 AVG(C2)의 결과가 같다.
정답 근거SUM(C2), COUNT(C2), AVG(C2)는 모두 C2의 NULL을 제외한다. 따라서 `SUM(C2)/COUNT(C2)`는 AVG(C2)와 같고 COUNT(*)를 쓴 첫 식은 NULL 행까지 분모에 포함한다. 따라서 2번 보기 ‘두 번째 식과 AVG(C2)의 결과가 같다.’의 적용 여부를 문제 조건과 대조해야 한다.
3
첫 번째 식과 AVG(C2)가 같다.
오답 이유AVG는 전체 행 수 COUNT(*)가 아니라 비NULL 값 개수로 나눈다. 따라서 3번 보기 ‘첫 번째 식과 AVG(C2)가 같다.’의 적용 여부를 문제 조건과 대조해야 한다.
4
NULL이 하나라도 있으면 세 결과가 모두 NULL이다.
오답 이유집계 함수는 비NULL 값이 존재하면 NULL 행을 제외하고 계산한다. 따라서 4번 보기 ‘NULL이 하나라도 있으면 세 결과가 모두 NULL이다.’의 적용 여부를 문제 조건과 대조해야 한다.
ANSWER & EXPLANATION
정답 2번
핵심 판단은 2번 ‘두 번째 식과 AVG(C2)의 결과가 같다.’입니다. SUM(C2), COUNT(C2), AVG(C2)는 모두 C2의 NULL을 제외한다. 따라서 `SUM(C2)/COUNT(C2)`는 AVG(C2)와 같고 COUNT(*)를 쓴 첫 식은 NULL 행까지 분모에 포함한다.