< 그룹함수 >
1. SUM(숫자타입 컬럼) : 해당 컬럼 값들의 총 합계를 구해서 반환해주는 함수
-- EMPLOYEE 테이블의 전 사원의 급여합
SELECT SUM(SALARY)
FROM EMPLOYEE; -- 전체 사원이 한 그룹으로 묶임
-- 남자 사원들의 총 급여 합
SELECT SUM(SALARY) --3
FROM EMPLOYEE -- 1
WHERE SUBSTR(EMP_NO,8,1) IN ('1','3'); --2
-- 부서코드가 D5인 사원들의 총 연봉 합
SELECT SUM(SALARY * 12)
FROM EMPLOYEE
WHERE DEPT_CODE = 'D5';
2. AVG(숫자타입) : 해당 컬럼값들의 평균값을 구해서 반환
SELECT ROUND(AVG(SALARY))
FROM EMPLOYEE;
3. MIN(여러타입) : 해당 컬럼값들 중에 가장 작은 값 구해서 반환
SELECT MIN(EMP_NAME), MIN(SALARY), MIN(HIRE_DATE)
FROM EMPLOYEE;
4. MAX(여러타입) : 해당 컬럼값들 중에 가장 큰 값 구해서 반환
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(*) -- 3
FROM EMPLOYEE -- 1
WHERE SUBSTR(EMP_NO,8,1) IN ('2','4'); -- 2
-- 보너스를 받는 사원수
-- 1번 방법.
SELECT COUNT(*)
FROM EMPLOYEE
WHERE BONUS IS NOT NULL;
-- 2번 방법.
SELECT COUNT(BONUS) -- 컬럼이 NULL이 아닌것만 카운팅함
FROM EMPLOYEE;
-- 부서배치를 받은 사원 수
SELECT COUNT(DEPT_CODE)
FROM EMPLOYEE;
-- 현재 사원들이 몇개의 부서에 분포되어있는지
SELECT DISTINCT DEPT_CODE
FROM EMPLOYEE;