본문 바로가기

programming

[DB] 집계함수 종류와 각각의 역할

집계함수는 여러행으로부터 하나의 결과값을 반환하는 함수이다.

주로 통계적인 데이터 (총합, 평균, 최대, 최소 등)을 구할 때 사용한다

 

1. COUNT

select count(*) from tb_member where gender = 'female';

남자들 중에서 member_name 중복을 제거한(동명이인 제거) 카운트 수

select count(distinct member_name) from tb_member where gender = 'male';

 

2. MIN/MAX

select MAX(member_age) from tb_member;

string 값이 저장되는 컬럼에도 사용 가능 -> 사용시 알파벳 사전순서

select MIN(country) from tb_member;

 

3. AVG(평균), SUM(총합), STDEV(표준편차), VAR(분산), CHECKSUM_AGG

* 표준편차 : 평균에 대한 오차, 실제 데이터 값이 평균과 얼마나 떨어져 있는가

* 분산 : 표준편차 제곱

 

 

4. GROUP BY

카테고리컬한 데이터에서 각각의 카테고리별로 연산을 하고 싶다면?

직급별 월급평균 등

select job, AVG(salary) from tb_member GROUP BY job;

 

5. HAVING

GROUP BY 절을 통해 만들어진 각각의 그룹들에 대해서 조건을 거는 것

WHERE 는 모든 row에 대해서 조건을 거는 것이고,

HAVING은 만들어진 그룹들에만 조건을 거는 것

 

1) 직급별 월급 평균에서 그 평균값이 4000을 넘는 경우

select job, AVG(salary) from tb_member GROUP BY job HAVING AVG(salary) > 4000;

2) 월급이 300만원 이상인 사람들에 대해서 직급별로 2명 이상인 직급과 그 직급의 월급 평균을 구해라

select job, AVG(job)
from tb_member
where salary >= 300
GROUP BY job
HAVING COUNT(job) >= 2