인프런 커뮤니티 질문&답변

cjh님의 프로필 이미지
cjh

작성한 질문수

데이터 분석 SQL Fundamentals

강사님 with 와 서브쿼리에 대해 질문이 있습니다.

해결된 질문

작성

·

176

0

with 
temp_01 as (
	select avg(sal) as emp_avg from emp
)
select deptno ,avg(sal) 
from emp
group by deptno
having avg(sal) > (select emp_avg from temp_01);

 

-- 전체 평균 급여보다 부서평균 급여가 높은 부서 번호를 출력하세요

 

having에서 조건을 비교하는 방식을 사용한다고 한다면

강사님께서는 having에 서브쿼리를 사용하게 되면 ,

그 서브쿼리를 매번 실행하다보니 추천을 하지 않는다고 하셨는데

 

여기서 with로 임시 테이블을 지정하면

이미 재사용하기 편하기 위해서 temp_01로 만들어서 사용하면

임시 서브쿼리 테이블을 사용하니까 비상관 서브쿼리를 날리는 거보다 좀 더 나은 걸까요?

답변 1

1

권 철민님의 프로필 이미지
권 철민
지식공유자

안녕하십니까,

네, 그렇게 사용하셔도 됩니다.

그리고 이건 강의 내용이 좀 바뀌어야 할 것 같습니다.

상관 서브쿼리를 having절에 사용하지 말라는 의미가 되어야 하는데, 비상관은 말씀하신대로 그렇게 사용하시면 됩니다.

감사합니다.

cjh님의 프로필 이미지
cjh
질문자

강사님 답변 감사합니다 !!!

cjh님의 프로필 이미지
cjh

작성한 질문수

질문하기