2019. 4. 4. 19:34ㆍDateBase
---------------------------다중행 함수(그룹함수)-------------------------
그룹함수
- 그룹함수는 행 집합(행 그룹)에 작용해서 그룹 당 하나의 결과를 생성한다.
- 행 집합은 테이블 전체 생일수도 있고, 테이블에서 특정 컬럼의 값이 동일한 것끼리 그룹화된 행일 수도 있다.
- 1대 다의 관계를 표현한다.
그룹함수의 종류
count(*), count(컬럼명)
- 행의 갯수, *일때는 모든 행의 갯수, 컬럼명을 지정하면 null이 아닌 행의 갯수
sum(컬럼명)
- 합계를 계산, null값은 무시한다.
avg(컬럼명)
- 평균을 계산, null값은 무시한다.
min(컬럼명)
- 최소값을 계산, null값은 무시한다.
max(컬럼명)
- 최대값을 계산, null값은 무시한다.
variance(컬럼명)
- 분산을 계산, null값은 무시한다.
분산 구하는법 : 평균값을 구하고, 각각에 평균값을 뺀 값에 제곱을하여 합하고 값의 갯수만큼 나눈 값
stddev(컬럼명)
- 표준편차를 계산, null값은 무시한다.
표준편차 구하는법 : 루트 분산값
///////////////////////////////////count(*)
예시) 직원의 수를 조회하기
select count(*)
from employees;
예시2) 커미션을 받는 사원 수
select count(commission_pct)
from employees;
///////////////////////////////////sum(컬럼명) : 합계 구하기, null무시
예시) 80번 부서에 소속된 사원들의 급여 총합을 조회하기
select sum(salary)
from employees
where department_id = 80;
///////////////////////////////////avg(컬럼명) : 평균값 구하기, null무시
예시) 커미션의 평균
select avg(commission_pct)
from EMPLOYEES
///////////////////////////////////min(컬럼명) : 최소값 구하기, null무시
예시) 최저급여 조회하기
select min(salary)
from employees;
예시2) 최저급여인 직원조회하기
select first_name
from employees
where salary = (select min(salary)
from employees); -- 쿼리안에 쿼리문을 작성하는 것을 서브쿼리라 한다.