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

cjh님의 프로필 이미지
cjh

작성한 질문수

데이터 분석 SQL Fundamentals

강사님 Group By 실습 - 01 질문 있습니다

해결된 질문

작성

·

331

0

with : https://www.inflearn.com/questions/542285

 

강사님께서 with 절을 사용하시는 이유는

수강생이 SQL 진행 순서를 보여주기 위해서 사용하신다고 하셨는데

  1. 강사님께서는 실무에서 with을 주로 어떤 용도로 사용하시는지 궁금합니다

 

그리고

select a.dname , round(avg(c.sal),0) as "부서별 평균 급여"
   from dept a
   join emp b 
   on a.deptno = b.deptno and a.dname in ('SALES','RESEARCH')
   left join emp_salary_hist c 
   on b.empno = c.empno
group by a.dname ;
-- 강사님께서 작성하신 코드
select a.deptno, max(a.dname) as dname, avg(c.sal) as avg_sal, count(*) as cnt 
from hr.dept a
	join hr.emp b on a.deptno = b.deptno
	join hr.emp_salary_hist c on b.empno = c.empno
where  a.dname in('SALES', 'RESEARCH')
group by a.deptno
order by 1;

저는 where에 조건을 넣지 않고 and에 조건을 넣었습니다.

그이유는 dname에 인덱스가 없기때문에 where에 조건을 추가하면

테이블을 조인한 후에 필터링을 하고 Group by를 진행하게 되는 것보다

join on and 에 조건을 넣으면 조건에 만족하는 데이터만 가지고 조인을 하기때문에

조금이라도 조인 성능이 좋아지지 않을까 생각했습니다.

아니면 join 조건도 인덱스가 없으면

where 절과 똑같이 조건 스캔을 먼저 하냐 뒤에 하냐 차이일 뿐인가요 ?

답변 1

1

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

이전 질문과 동일한 질문이어서 이전 질문의 답변을 확인 부탁드립니다.

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

인프런에서 글을 찾을수 없다고해서 삭제된줄 알았는데 다시 돌아왔네요 감사합니다

cjh님의 프로필 이미지
cjh

작성한 질문수

질문하기