해결된 질문
작성
·
182
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절에 사용하지 말라는 의미가 되어야 하는데, 비상관은 말씀하신대로 그렇게 사용하시면 됩니다.
감사합니다.
강사님 답변 감사합니다 !!!