본문 바로가기

Oracle/SQL

SQL Sub Query Having 절 서브쿼리

문제 360 직업, 직업별 토탈월급 출력

select job, sum(sal)
from emp 
group by job;

문제 361 위의 결과에서 SALESMAN 의 토탈월급보다 더 큰것만 출력

select job, sum(sal)
from emp
group by job 
HAVING SUM(SAL)> (select sum(sal)
                  from emp 
                  where job = 'SALESMAN');

 

salesman 의 토탈월급은 GROUPING 된 결과에대한 조건이므로 HAVING 절에다가 서브쿼리문을 작성

즉 ; 그룹함수로 검색조건을 줄때에는 WHERE 절에 사용하면 안된다.


문제 362 직업, 직업별 인원수를 출력하는데 직업이 어널리스트인 사원들의 인원수보다 더많은것만 출력하시오

select job, count(*)
from emp 
group by job
having count(*) > (select count(*)
                   from emp
                   where job = 'ANALYST');