[Oracle] 오라클 평균 구하는 방법 (AVG 함수 주의점)
- 데이터베이스/오라클
- 2020. 6. 25.
오라클에서 AVG 함수를 사용하면 평균을 쉽게 구할 수 있다. 그러나 NULL 값을 처리하지 않으면 평균 값에 오류가 발생할 수 있으니 주의해야 한다.
SELECT AVG(sal)
FROM emp
평균을 구할 컬럼의 값에 NULL 값이 존재한다면 꼭 NVL 함수를 사용하여 NULL 값을 치환해야 한다. NULL 값을 치환하지 않으면 총합계÷총건수와 다른 결과가 조회된다.
SELECT AVG(NVL(comm, 0)) AS avg1
, SUM(comm) / COUNT(*) AS avg2
FROM emp
오라클의 집계 함수는 NULL 값을 집계에서 제외하는 특성이 있다.
AVG 함수는 SUM(comm) / COUNT(*) 와 동일한 기능을 수행한다.
급여(sal) 컬럼은 NULL 값이 없기 때문에 정상적으로 평균 급여가 계산된다
보너스(comm) 컬럼은 NULL 값이 존재하기 때문에 AVG 함수와 총합계÷총건수가 다른 결과가 계산된다
보너스(comm) 컬럼에 NVL 함수를 사용하여 NULL 값을 치환 후 정상적으로 계산된다
직군(job) 별로 평균 급여를 구할 수 있다