< 그룹 함수 >

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


1. SUM(NUMBER) : 해당 컬럼 값들의 총 합계를 구해서 반환해주는 함수 

- 전사원의 총 급여 합계  

SELECT SUM(SALARY)
FROM EMPLOYEE; --전체 사원이 한 그룹으로 묶임


-남자사원들의 총 급여 합계

SELECT SUM(SALARY)
FROM EMPLOYEE
WHERE SUBSTR(EMP_NO,8,1)IN ('1','3'); --남자 사원들이 한 그룹으로 묶임



2. AVG(NUMBER) : 해당 컬럼값들의 평균값을 구해서 반환해주는 함수 

-전 사원의 평균 급여

SELECT ROUND(AVG(SALARY))
FROM EMPLOYEE;


3. MIN(NUMBER|CHARACTER|DATE) : 해당 컬럼값들 중에서 가장 작은 값 구해서 반환

SELECT MIN(EMP_NAME), MIN(SALARY), MIN(HIRE_DATE)
FROM EMPLOYEE;



4. MAX(NUMBER|CHARACTER|DATE) : 해당 컬럼값들 중에서 가장 큰 값 구해서 반환
SELECT MAX(EMP_NAME), MAX(SALARY), MAX(HIRE_DATE)
FROM EMPLOYEE;

SELECT MAX(EMP_NAME), MAX(SALARY), MAX(HIRE_DATE)
FROM EMPLOYEE;

 

5. COUNT(*| 컬럼| DISTINCT 컬럼) : 행 갯수를 세서 반환 
-   COUNT(*) : 조회될 결과의 모든 행 갯수를 세서 반환 
-   COUNT(컬럼) : 제시한 해당 컬럼값이 NULL이 아닌것만 행 갯수 세서 반환
-   COUNT(DISTINCT 컬럼) : 해당 컬럼값을 중복제거한 후 행 갯수 세서 반환

-전체사원 수 

SELECT COUNT(*)
FROM EMPLOYEE;



-여자 사원수

SELECT COUNT(*)
FROM EMPLOYEE
WHERE SUBSTR(EMP_NO,8,1) IN ('2','4');



-보너스를 받는 사원 수 

SELECT COUNT(*)
FROM EMPLOYEE
WHERE BONUS IS NOT NULL;



-부서배치를 받은 사원 수 

SELECT COUNT(DEPT_CODE)
FROM EMPLOYEE;



-현재 사원들이 총 몇개의 직급에 분포되어 있는지 

SELECT COUNT(DISTINCT JOB_CODE)
FROM EMPLOYEE;



-사원들이 총 몇개의 부서에 속해있는지

SELECT COUNT(DISTINCT DEPT_CODE) -- NULL값은 제외
FROM EMPLOYEE;



복사했습니다!