특정조건으로 세부적인 그룹화
--professor에서 학과별로 교수들의 총급여 출력
select deptno 학과,sum(pay) 총급여
from professor
group by deptno;
--professor에서 학과별, 직급별로 교수들의 평균급여 출력
select deptno 학과,교수직급,avg(pay) 평균급여
from professor
group by deptno,교수직급;
--student에서 학년별 평균 키와 최고 몸무게를 구하시오
select grade 학년,avg(height) 평균키,max(weight) 최고몸무게
from student
group by grade;
<aside> 💡 group by 소계함수 없이도 사용 가능
--중복제거랑 똑같이 나옴
select deptno
from emp
group by deptno;
</aside>
Group에 대한 조건은 Having절로
--professor에서 평균급여가 450이상인 부서의 부서번호와 평균급여
select deptno,avg(pay)
from professor
group by deptno having avg(pay)>=450;
--emp에서 평균연봉이 2000인 부서의 부서번호와 평균급여
select deptno 부서번호,round(avg(sal),2) 평균급여
from emp
group by deptno having avg(sal)>=2000;
--emp에서 직군별로 직원수가 2명 이상
select job 직군, count(*) 직원수 from emp
group by job having count(*)>=2;
--emp에서 직군별 직원수가 2명이상이고 총 급여가 5000이상인 곳
select job 직군,count(*) 직원수, sum(sal) 총급여
from emp
group by job having count(*)>=2 and sum(sal)>=5000;
--모든 절을 사용하여 검색
select job,sum(sal) 급여합계
from emp
where job not in('SALESMAN')
group by job
having sum(sal)>2000
order by sum(sal) desc;