Q. 부서별 평균급여를 구하고 그 결과 평균급여가 2000이상인 부서만 출력하시오.
select deptno, AVG(sal)
from emp
group by deptno
HAVING AVG(sal) >= 2000;
Q. 1981년 5월 31일 이후 입사자 중에서 커미션이 NULL 이거나,
0인 사원의 커미션은 500으로 하고, 그렇지 않으면 기존 커미션을 출력하라. **
select ename 입사자 , hiredate,
DECODE(comm, NULL, 500,
0, 500,
comm)커미션
from emp
where hiredate > to_date(19810531)
OREDR BY ename;
Q. 부서별 최대 값과 최소값을 구하되, 최대 급여가 2900 이상인 부서만 출력하시오
select deptno, MAX(sal), MIN(sal)
from emp
group by deptno
having MAX(sal) >= 2900;
Q. 부서별 평균 급여를 구하고, 그 결과 평균 급여가 2000 이상인 부서만 출력하시오.
select deptno, AVG(sal)
from emp
group by deptno
having AVG(sal) >= 2000;
Q. 급여가 1000 이상인 사람들로 부서별 평균급여를 구하고,
그 결과 평균 급여가 2000이상인 부서만 출력하시오.
select deptno, AVG(sal) from emp
where sal > 1000
group by deptno
having AVG(sal) >= 2000;
select job, count(*) cnt
from emp
where deptno IN(10,20,30)
GROUP BY job
HAVING count(*) > 2;
Q. 이름에 'LA'가 들어있지 않고,
JOB의 합이 3000 이상인 JOB그룹과
JOB에 속한 사원수를 출력하시오 **
JOB, 카운트, 합 형식으로 나오게 하시오
select job, count(*), SUM(sal)
from emp
where ename not like '%LA%'
group by job
having SUM(sal) >= 3000;