Develop/DATABASE

오라클)집계 함수 - 기본함수(COUNT, MIN, MAX, SUM, AVG)

걸어다니는 종합병원 2022. 10. 26. 23:36
반응형

집계 함수는 다중 값을 단일 값으로 집계하는 함수

 

emp 테이블의 전체 데이터


 

 COUNT 함수 - COUNT ({* | [DISTINCT | ALL] expr})

전체 행의 개수나 expr의 개수를 반환. 

행이 없거나 expr이 모두 널이면 0을 반환.

 

유형   설명  
COUNT ( * ) 전체 행의 개수를 반환
COUNT ( expr )  NULL이 아닌 expr의 개수를 반환
COUNT ( DISTINCT expr ) NULL이 아닌 expr의 고유한 개수를 반환

C1은 전체 행의 개수, C2는 comm의 개수, C3는 deptno의 고유한 개수


MIN 함수 - MIN ( expr )

expr의 최저 값을 반환

C3의 comm열의 NULL값은 무시되어 0이 반환


C2의 값이 모두  NULL이여서 널이 반환


MAX 함수 - MAX ( expr )

expr의 최고 값을 반환.


행이 존재하지 않으면 결과가 반환되지 않는다.


※ 집계 함수를 사용하면 행이 없더라도 하나의 행을 반환.


SUM 함수 - SUM ( [DISTINCT | ALL ] expr )

expr의 합계 값을 반환. 숫자 값만 입력

C1은 sal의 전체 합계, C2는 sal에서 중복값을 뺀 합계, C3는 NULL을 뺸 comm의 합계

comm이 NULL 인 경우에는 NULL을 반환

C1과 C2는 산술연산(+)을 사용해서 NULL을 반환

C3 열은 NVL 함수가 28회, C4열은 NVL 함수가 2번 수행되어 성능 측면에서는 C4가 더 효율적

C5는 산술 연산을 사용해서 NVL이 산술연산값이 NULL이기 때문에 0을 반환


AVG 함수 - AVG ([ DISTINCT | ALL ] expr )

expr의 평균을 반환

아래의 쿼리문과 동일한 결과를 보여준다.

SELECT SUM(sal) / COUNT(sal) AS c1
      ,SUM(DISTINCT sal) / COUNT(DISTINCT sal) AS c2
      ,SUM(comm) / COUNT(comm) AS c3
      ,SUM(comm) / COUNT(*) AS c4
    FROM emp;

 

반응형