본문 바로가기
Database/Oracle

[Oracle SQL] SQL 함수 - 그룹 함수 (SUM, AVG, MAX, MIN, COUNT)

by Amy IT 2022. 5. 11.

함수는 크게 단일행 함수와 다중행 함수(그룹 함수)로 나뉩니다. 앞서 살펴본 단일행 함수와 달리 그룹 함수는 여러 행 또는 테이블 전체에 함수가 적용되어 하나의 결과를 반환합니다. 

 

1. SUM 함수

 

null값을 제외한 해당 컬럼 값들의 총합을 구합니다.

SUM( DISTINCT | ALL | 컬럼명 )

DISTINCT 키워드는 중복된 값을 제외한다는 것으로, 생략하면 ALL이 기본적으로 적용됩니다. 

 

사원들의 월급의 총합을 구하는 SQL문입니다.

SELECT SUM(DISTINCT sal), SUM(ALL sal), SUM(sal) FROM emp;
        --> 23675           --> 24925    --> 24925

 

 

 

2. AVG 함수

 

null값을 제외한 해당 컬럼 값들의 평균을 구합니다. 

AVG( DISTINCT | ALL | 컬럼명 )

 

사원들의 월급의 평균을 구하는 SQL문입니다. 

SELECT AVG(sal) FROM emp;

 

 

 

3. MAX/MIN 함수

 

해당 컬럼 값들 중에서 최대값, 최소값을 구하는 함수입니다. 사원들의 월급의 최대값, 최소값을 구하는 SQL문입니다.

SELECT MAX(sal), MIN(sal) FROM emp;

 

입사 날짜가 가장 늦은 사람과 가장 빠른 사람을 구할 수도 있습니다.

SELECT MAX(hiredate), MIN(hiredate) FROM emp;

 

 

 

4. COUNT 함수 ★★★

 

테이블에서 조건을 만족하는, null을 제외한 행의 개수를 반환합니다. 

COUNT( DISTINCT | ALL | 컬럼명 | * )

 

SELECT COUNT(ename), COUNT(comm) FROM emp;
        --> 12          --> 4

 

null값과 상관 없이 테이블 전체 행의 개수를 구하기 위해서는 *를 사용하면 됩니다.

SELECT COUNT(*) FROM emp;  --> 12

 

 

그런데 이러한 그룹 함수를 사용할 때 주의할 사항이 있습니다. 다음 글에서 이어서 보겠습니다. 

 

 

댓글