본문 바로가기
DB/ORACLE

집계 함수...null 을 빼고 계산한다.

by 골든크랩 2022. 12. 21.
728x90
반응형

평균을 구할때 조심해야 함.

 

NULL 을 NVL 을 사용하던지 해야함.

NVL(COMM, 0) 

 

-- 아래 예제에서 보면 a1과 a2의 결과가 동일하고, a3는 결과가 다른다.  sum, avg, count는 null 을 제외하고 계산한다.

(단, count(*) 는 모두 계산함)

 

SELECT round(avg(comm)) a1, 

               round(sum(comm)/count(comm)) a2,

               round(sum(comm)/count(*)) a3

FROM emp;

 

그래서 올바른 쿼리는 아래와 같이 nvl 을 사용해주는 것이다.

SELECT round(avg(nvl(comm, 0))) FROM emp;

728x90
반응형

'DB > ORACLE' 카테고리의 다른 글

문제 : emp 테이블의 부서별 sal 의 합을 구해라  (0) 2022.12.21
Dbeaver 설정  (0) 2022.12.21
RECORD  (0) 2022.12.20
반복문  (0) 2022.12.20
PL-SQL 샘플 002 - 조건문 사용법  (0) 2022.12.19

댓글