데이터베이스/Oracle

Oracle 함수(Function) - 그룹 함수

Cuvely 2020. 11. 11. 16:29
728x90
반응형

그룹 함수

그룹함수란 하나 이상의 행을 그룹으로 묶어 연산하며 총합, 평균 등을 하나의 컬럼으로 반환하는 함수이다.

여러가지 그룹 함수를 알아보자

 

 

SUM

SUM이란 해당 컬럼 값들의 총합을 반환한다.

 

[ SUM 예시 ]

- EMPLOYEE테이블에서 남자 사원의 급여 총합 조회

SELECT SUM(SALARY),
FROM EMPLOYEE
WHERE SUBSTR(EMP_NO, 8, 1) = 1;

 

- EMPLOYEE테이블에서 부서코드가 D5인 직원의 보너스 포함 연봉 조회

SELECT SUM(SALARY + (SALARY*NVL(BONUS, 0))*12) 
FROM EMPLOYEE 
WHERE DEPT_CODE = ‘D5’;

 

 

AVG

AVG란 해당 컬럼 값들의 평균을 반환한다.

 

[ AVG 예시 ]

- EMPLOYEE테이블에서 전 사원의 보너스 평균을 소수 셋 째 자리에서 반올림 한 것 조회

SELECT ROUND(AVG(NVL(BONUS, 0)), 2)
FROM EMPLOYEE;

- NVL을 하지 않을 시 NULL 값을 가진 행평균 계산에서 제외되어 계산된다 -

 

 

 

 

MAX / MIN

MAX란 그룹의 최대값을 반환한다.

MIN란 그룹의 최소값을 반환한다.

 

[ MAX / MIN 예시]

- EMPLOYEE테이블에서 가장 높은 급여와 가장 낮은 급여 조회

SELECT MAX(SALARY), MIN(SALARY)
FROM EMPLOYEE;

 

- EMPLOYEE테이블에서 가장 오래된 입사일과 가장 최근인 입사일 조회

SELECT MAX(HIRE_DATE), MIN(HIRE_DATE)
FROM EMPLOYEE;

 

 

COUNT

COUNT란 테이블 조건을 만족하는 행의 개수를 반환한다.

 

[ COUNT 예시 ]

- EMPLOYEE테이블에서 전체 사원 수 조회

SELECT COUNT(*) -- *은 전체를 뜻한다.
FROM EMPLOYEE;

 

- EMPLOYEE테이블에서 부서코드가 D5인 직원의 수 조회

SELECT COUNT(DEPT_CODE)
FROM EMPLOYEE
WHERE DEPT_CODE = ‘D5’;

 

- EMPLOYEE테이블에서 사원들이 속해있는 부서의 수 조회

SELECT COUNT(DISTINCT DEPT_CODE) 
FROM EMPLOYEE;

 

728x90
반응형