다중 행 함수(집계 함수)

◆ 집계 기능

– 세다

: 총 행 수

SELECT COUNT(*)
	, COUNT(MGR) # NULL값이 존재한다면 제외하고 카운트
    , COUNT(1)

– COUNT(exp): exp 열의 행 수, NULL은 계산에서 제외

– SUM(exp): exp 칼럼 값의 합, NULL은 계산에서 제외

– AVG(exp): exp 열 값의 평균, NULL은 계산에서 제외

– MAX(exp): exp 열 중 가장 큰 값, NULL은 계산에서 제외

– MIN(exp): exp 열 중 가장 작은 값, NULL은 계산에서 제외

– STDDEV(exp): exp 값의 표준편차, NULL은 계산에서 제외

– VARIAN(exp): exp 값의 분산, NULL은 계산에서 제외

◆ 연습

select max(sal) as sal_max
	, min(sal) as sal_min
    , sum(sal) as sal_total
    , round(avg(sal)) as sal_avg
   from emp

1) EMP 테이블에 최고연봉, 최저연봉, 총연봉, 평균연봉을 출력하는 쿼리를 작성하라(평균연봉은 정수로 반올림)

select coalesce(max(sal), 0)-coalesce(min(sal),0) as sal_diff
	from emp

2) EMP 테이블에서 최고 임금과 최저 임금의 차이를 표시하는 쿼리를 작성하십시오.

select count(*) as cnt_emp
	, count(case when to_char(hiredate, 'YYYY') = 1981 then 1 end) as cnt_hire_1981
    , count(case when to_char(hiredate, 'YYYY') = 1982 then 1 end) as cnt_hire_1982
   from emp

3) 총 사원 수와 1981년과 1982년에 입사한 사원 수를 EMP 테이블에 표시하는 쿼리를 작성하십시오.

select count(distinct(mgr)) as cnt_mgr
	from emp

4) 직원 중 관리자 수를 표시하는 쿼리 작성(중복이 제거된 관리자 수)