다중행 함수 - count, sum, avg, min, 서브쿼리

2019. 4. 4. 19:34DateBase

---------------------------다중행 함수(그룹함수)-------------------------

그룹함수
 - 그룹함수는 행 집합(행 그룹)에 작용해서 그룹 당 하나의 결과를 생성한다.
 - 행 집합은 테이블 전체 생일수도 있고, 테이블에서 특정 컬럼의 값이 동일한 것끼리 그룹화된 행일 수도 있다.
 - 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); -- 쿼리안에 쿼리문을 작성하는 것을 서브쿼리라 한다.