## where , group by , having 이 온다
## 각 부서별로 월급이 4000 이상인사람
/*
SELECT deptno, MAX(sal)
FROM emp
GROUP BY deptno
HAVING MAX(sal) > 4000;
*/
##각 직업중에서 직업이름에 MAN이 들어가지 않고, 각 직업당 총월급 이 3000이상인 직업을
## 월급을 기준으로 오름차순 정렬
/*
SELECT job, SUM(sal) PAYROLL
FROM emp
WHERE job NOT LIKE '%MAN%'
GROUP BY job
HAVING SUM(sal) > 3000
ORDER BY SUM(sal);
*/
## Having 예제문제.##############
/*
##각 부서별로 지급되는 총 월급에서 금액이 10000 이상인 곳은?
select deptno, sum(sal) SUM_SAL from emp
group by deptno
having sum(sal) >=10000;
*/
##각 부서에서 월급이 제일 많은 사람과 제일 적은 사람의 이름과 직업은?
/*
select deptno, ename , job, sal from emp
where sal = (select max(sal) from emp where deptno = 10) ||
sal = (select min(sal) from emp where deptno = 10) ||
sal = (select max(sal) from emp where deptno = 20) ||
sal = (select min(sal) from emp where deptno = 20) ||
sal = (select max(sal) from emp where deptno = 30) ||
sal = (select min(sal) from emp where deptno = 30)
order by deptno;
*/
##월급이 제일 많은 사람과 제일 적은 사람의 차이가 900 이상인 부서는?
/*
select deptno, max(sal) , min(sal) , max(sal) - min(sal) from emp
group by deptno
having max(sal) - min(sal) >= 900;
*/