: 동일한 값에 대해 그룹핑해서 처리하는 함수
group by절, 특정 컬럼을 정의 할 경우, 해당 컬럼의 동일한 값을 그룹핑해서 연산
SUM | 합계를 구하는 함수 |
---|---|
AVG | 평균을 구하는 함수 |
MAX | 최대값을 출력 |
MIN | 최소값을 출력 |
COUNT | 레코드 수 ( 한 라인의 값이 저장된 ) , ROW (행) |
select SUM(commission), AVG(commission), MAX(commission), MIN(commission)
from employee;
: 컬럼에 동일한 값을 그룹핑해서 처리
select 컬럼명
from 테이블명 , 뷰 (가상으로 생성된 테이블)
where 조건
group by 그룹핑 할 칼럼
having group by 를 사용해서 나온 결과를 조건 처리
order by 정렬
💡 group by 와 having은 무조건 같이 쓰여야 함
select SUM(salary) 부서별월급합계, round(AVG(salary),2)부서별월급평균,
MAX(salary) 부서별최대월급, MIN(salary)부서별최소월급,dno
from employee
group by dno --dno컬럼의 동일한 값을 그룹핑
order by dno;
having : group by를 사용해서 나온 결과를 조건으로 출력
where : 테이블의 값을 조건을 주어서 가지고 올때 사용
💡 having 절에서 별칭이름을 사용할 경우 오류 발생 <==<<주의>>
select sum(salary) 부서별합계, round(avg(salary)) 평균,
max(salary) 최대값, min(salary) 최소값,dno
from employee
where dno not in (20)
having min (salary) >= 1000
group by dno
order by dno;
count 함수 : 레코드수, row (행) 의 수
-- 중복되지 않은 직업의 개수 구하기
select count(distinct job) as "직업 종류의 개수"
from employee;
select count ( eno ) from employee; -- NOT NULL로 정의된 컬럼
select count ( * ) from employee;
select count(distinct job)
from employee;
--부서의 개수
select count(distinct dno)
from employee;