Programming/SQL
[오라클] NVL, 집계함수(AVG) 함께 사용시 주의사항
감성적인 개발자
2022. 12. 1. 09:51
오라클에 제공하는 AVG 함수를 이용하면 컬럼의 평균값을 구할 수 있다. 이 때 함수가 null 값을 처리하는 방법을 잘 알지 못하면 평균값이 제대로 구해지지 않을 수 있다.
테이블
쿼리
COMM 컬럼의 합계는 2200 테이블의 ROW 수는 5개이기 때문에 COMM_A의 결과가 440(2200 ÷ 5)이 나와야 했는데 550(2200 ÷ 4)으로 계산되었다.
컬럼이 null인 경우 집계함수가 처리하지 않기 때문에 null 처리를 해주어야 한다.(NVL 함수 사용법)
SELECT AVG(COMM) AS COMM_A
FROM EMP
WHERE SAL BETWEEN 1200 AND 1600
SELECT AVG(NVL(COMM, 0)) AS COMM_A
FROM EMP
WHERE SAL BETWEEN 1200 AND 1600