[SQL] 서브쿼리 사용하기 - HAVING절의 서브쿼리

·2025년 7월 9일
0

SQL

목록 보기
90/126

💡 select문의 6가지 절

select 보고싶은 컬럼명
from 테이블명
where 검색조건
group by 그룹핑할 컬럼명
having 그룹함수로 검색 조건을 줄때 사용하는 절
order by 정렬할 컬럼

💡 select문의 6가지 절에서 서브쿼리를 사용할 수 있는 절

select --- 서브쿼리 사용가능
from --- 서브쿼리 사용가능
where --- 서브쿼리 사용가능
group by -- 서브쿼리 사용 불가능
having --- 서브쿼리 사용가능
order by --- 서브쿼리 사용가능


문제1. 직업, 직업별 토탈월급을 출력하시오

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

문제2. 위의 결과를 다시 출력하는데 직업별 토탈월급이 5000 이상인것만 출력하시오

select job, sum(sal)
 from emp
 group by job
 having sum(sal) >= 5000;

💡 그룹함수 조건은 where절이 아닌 having절에 써야됨!

문제3. 직업, 직업별 인원수를 출력하는데 직업별 인원수가 3명 이상인것만 출력하시오

select job, count(*)
 from emp
 group by job
 having count(*) >= 3;

💡 having절에 별칭 사용 불가능

문제4. 직업, 직업별 인원수를 출력하는데 직업별 인원수가 직업이 ANALYST 의 인원수보다 더 많은것만 출력하시오

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

문제5. 직업, 직업별 토탈월급을 출력하는데 직업별 토탈월급이 직업이 SALESMAN인 사람의 토탈월급보다 더 큰 것만 출력하시오

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

복습문제. emp21 테이블에서 통신사, 통신사별 최대나이, 통신사별 최소나이, 통신사별 평균나이, 통신사별 인원수를 출력하시오

select telecom, max(age), min(age), round(avg(age)), count(*)
 from emp21
 group by telecom;

0개의 댓글