데이터 베이스(Oracle)

그룹 함수

alsdnr6672 2024. 7. 23. 17:32

SUM : 해당 컬럼의 값들의 총 합을 반환해주는 함수

-- 남자사원들의 총 급여
SELECT SUM(SALARY) "남자사원들의 총 급여"    -- 3
FROM EMPLOYEE                              -- 1
WHERE SUBSTR(EMP_NO, 8, 1) IN ('1', '3');  -- 2

-- 여자사원들의 총 급여
SELECT SUM(SALARY) "여자사원들의 총 급여"    -- 3
FROM EMPLOYEE                              -- 1
WHERE SUBSTR(EMP_NO, 8, 1) IN ('2', '4');  -- 2

AVG : 해당 컬럼의 값들의 평균을 반환해주는 함수

-- 전체 사원들의 평균 급여 조회 (반올림 적용 : ROUND)
SELECT ROUND(AVG(SALARY)) "전체 사원 평균 급여"
FROM EMPLOYEE;   --3047662.60869565217391304347826086956522

MIN : 해당 컬럼의 값들 중 가장 작은 값 반환해주는 함수

[표현법] MIN(모든타입)

SELECT MIN(EMP_NAME) "문자타입 최솟값", MIN(SALARY) "숫자타입 최솟값", MIN(HIRE_DATE) "날짜타입 최솟값"
FROM EMPLOYEE;

 

MAX : 해당 컬럼의 값들 중 가장 큰 값을 반환해주는 함수

[표현법] MAX(모든타입)

SELECT MAX(EMP_NAME) "문자타입 최댓값", MAX(SALARY) "숫자타입 최댓값", MAX(HIRE_DATE) "날짜타입 최댓값"
FROM EMPLOYEE;

 COUNT : 행의 갯수를 반환해주는 함수 (단, 조건이 있을 경우 해당 조건에 맞는 행의 갯수를 반환)

 [표현법]
           COUNT(*) : 조회된 결과에 모든 행의 갯수를 반환
           COUNT(컬럼) : 해당 컬럼값이 NULL이 아닌 것만 행의 갯수로 세어 반환
           COUNT(DISTINCT 컬럼) : 해당 컬럼값의 중복을 제거한 후의 행의 갯수를 세어 반환
                 => 중복 제거 시 NULL은 포함하지 않고 갯수가 세어짐!

-- 전체 사원 수 조회
SELECT COUNT(*) "전체 사원 수" FROM EMPLOYEE;  --23

 

-- 남자 사원 수 조회
SELECT COUNT(*) 
FROM EMPLOYEE
WHERE SUBSTR(EMP_NO, 8, 1) IN ('1', '3');  -- 15


-- 보너스 받는 사원 수 조회
SELECT COUNT(BONUS) FROM EMPLOYEE;  --9