본문 바로가기

Error note

[MySQL] 인라인 뷰 (from절) 과 같은 값을 join으로 활용

From 절에 사용하는 인라인 뷰 활용 문제

 

현재 다니고 있는 매니저들의 평균 연봉 구하기
select emp_no, 평균연봉 
from (select emp_no, avg(salary) as 평균연봉
	from salaries as s
group by emp_no) as avg_salary
where emp_no in (select emp_no from dept_manager where to_date = '9999-01-01');

 

 

 

내가 짠 코드

인라인뷰, 중첩 서브쿼리를 동시 사용해서 문제를 풀었는데 위와 같은 결과 집합을 join을 활용해서 다시 만들어봤는데

결과가 위 코드와 다르게 나왔다.

select d.emp_no, avg(s.salary), d.to_date
from dept_manager as d
join salaries as s
on d.emp_no = s.emp_no
where s.to_date = '9999-01-01'
group by d.emp_no;

 


 

 

오답풀이

select d.emp_no, avg(s.salary), d.to_date
from dept_manager as d
join salaries as s
on d.emp_no = s.emp_no
where d.to_date = '9999-01-01'
group by s.emp_no;

 

where 절에 날짜와 select 절의 날짜가 달라서 결과값이 다르게 나온 거였다.

group by도 문젠가 싶어서 d.emp_no를 넣어봤는데 상관이 없었음.

 

where, select절에서 d.to_date를 s.td_date로 바꾸니까 salaries의 to_date를 기준으로 나왔음

728x90

'Error note' 카테고리의 다른 글

맥 MySQL employees 폴더 불러오기 해결  (1) 2024.06.11