• 카테고리

    질문 & 답변
  • 세부 분야

    데이터베이스

  • 해결 여부

    해결됨

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

23.06.21 21:52 작성 조회수 139

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

질문자

2023.06.22

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