[Oracle] 오라클 평균 구하는 방법 (AVG 함수 주의점)

오라클에서 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(*) 와 동일한 기능을 수행한다.

 

 

사용_예제_쿼리.txt
0.01MB

 

급여(sal) 컬럼은 NULL 값이 없기 때문에 정상적으로 평균 급여가 계산된다

 

 

보너스(comm) 컬럼은 NULL 값이 존재하기 때문에 AVG 함수총합계÷총건수가 다른 결과가 계산된다

 

 

보너스(comm) 컬럼에 NVL 함수를 사용하여 NULL 값을 치환 후 정상적으로 계산된다

 

 

직군(job) 별로 평균 급여를 구할 수 있다

 

 

 

댓글

Designed by JB FACTORY