-- 부서명 SALES와 RESEARCH 소속 직원별로 과거부터 현재까지 -- 모든 급여를 취합한 평균 급여 select e.ename, round(avg(sh.sal),-2) from hr.emp_salary_hist sh join hr.emp e on sh.empno = e.empno join hr.dept d on d.deptno = e.deptno where d.dname in ('SALES','RESEARCH') group by e.ename
위드 절을 모른 상태에서 강의를 선행학습 하면서 이렇게 코드를 썼는데요, 강의 노트에 있는 정답(수업시에도 언급하신)은 아래와 같습니다. 차이가 있을까요?
-- 부서명 SALES와 RESEARCH 소속 직원별로 과거부터 현재까지 모든 급여를 취합한 평균 급여
with
temp_01 as
(
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
)
select empno, max(ename) as ename, avg(sal) as avg_sal
from temp_01
group by empno;