데이터베이스 기초
시험 표의 점수 열에 80, NULL, 70, 90의 4개 값이 있다(NULL은 미응시를 나타낸다). SELECT AVG(점수) FROM 시험의 결과는?
- A60
- B80
- CNULL
정답과 해설 보기
정답: B. 80
SQL의 집계 함수(SUM, AVG, MAX, MIN, 열을 지정한 COUNT)는 NULL을 무시하고 계산합니다. AVG(점수)는 NULL이 아닌 3개 값의 평균이므로 (80 + 70 + 90) ÷ 3 = 240 ÷ 3 = 80입니다. NULL을 0으로 보고 4로 나누면 240 ÷ 4 = 60이 되지만, AVG는 그렇게 계산하지 않습니다. 미응시자를 0점으로 하여 평균을 내고 싶을 때는 AVG(COALESCE(점수, 0))처럼 NULL을 0으로 바꾼 뒤 집계합니다. 참고로 값이 모두 NULL인 경우 AVG의 결과는 NULL이 됩니다.