< 그룹 함수 >
하나이상의 행을 그룹으로 묶어 연산하며 총합, 평균 등을 하나의 컬럼으로 반환하는 함수
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;
'ORACLE' 카테고리의 다른 글
ORACLE 03. SELECT _ HAVING절 (0) | 2022.11.16 |
---|---|
ORACLE 03. SELECT _ GROUP BY절 (0) | 2022.11.16 |
ORACLE 02. SELECT(함수) _ 단일행 함수_ NULL 처리함수/ 선택함수 (0) | 2022.11.16 |
ORACLE 02. SELECT(함수) _ 단일행 함수_ 형변환 함수 (0) | 2022.11.16 |
ORACLE 02. SELECT(함수) _ 단일행 함수_날짜처리함수 (0) | 2022.11.15 |