With 문
565
강사님 안녕하세요,
조인실습2에서 부서명 SALES와 RESEARCH 소속 직원별로 과거부터 현재까지 모든 급여를 취합한 평균 급여 예시가 조금 헷갈립니다. With 문이 서브쿼리 역할을 하는걸로 이해하고 있는데 해당 예시에서 왜 with문이 왜 필요한지, with문 또는 서브쿼리 사용하지 않고 쿼리를 진행시키는 방법이 있는지 궁금합니다ㅠ
답변 2
0
안녕하십니까,
강의에서도 말씀 드리지만, with절을 사용해서 제가 설명을 드리는 이유는 중요 포인트마다 집합 레벨을 설명드리고, 어떻게 전체 sql이 구성 되는지 차근차근 나눠서 설명드리기 위함입니다.
with절을 사용하지 않고 아래와 같이 인라인 뷰 형태로 적용해도 됩니다. 다만 제가 설명상 집합 레벨로 설명 드리기가 좀 더 복잡해 질 수 있습니다.
select empno, max(ename) as ename, avg(sal) as avg_sal
from
(
select a.dname, b.empno, b.ename, b.job, c.fromdate, c.todate, c.sal
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')
order by a.dname, b.empno, c.fromdate
) a group by empno;
또한 아래와 같이 인라인 뷰를 사용하지 않아도 최종 집합을 만들 수 있습니다. 하지만 아래 SQL은 중간 집합이 어떻게 만들어지고, 이것들이 어떻게 최종 집합으로 만들어 지는지 설명드리기에 체계적이지 못할 수 있기에 사용하지 않았습니다.
select b.empno, max(b.ename) as ename, avg(c.sal) as avg_sal
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 b.empno
감사합니다.
SQL 경험 없이 DB 정리 업무를 맡았는데 어디까지 공부해야 할까요?
0
208
1
진로 관련해서 질문 남깁니다...
0
384
0
강의 듣기전에 고민이 있어서 문의드립니다 !
1
411
1
속았어요 ㅠㅠ, 왕초보인데, gui 이었으면..
0
383
0
완강 후 궁금한 점
0
346
1
클라우드 설정 - 테이블 생성후, 파티션 나누기에서 battle_datetime 옵션이 목록에서 확인되지 않습니다.
0
384
0
서브쿼리
0
409
1
초기환경 설치에 관한 자료는 어디에 있나요
0
431
1
혹시 쿼리를 빨리 읽는 방법이 있을까요?
0
974
1
as 별칭을 한글로 하고 싶을 때
0
421
1
BigQuery 입문 강의 수강 후 dataset 선정 및 진행 방향성
0
538
1
강의 잘보고있습니다 !
0
497
1





