我正在尝试获取每位员工的最高薪水。
select e.first_name, e.last_name, t.title, s.salary
from employees e inner join titles t on e.emp_no = t.emp_no
inner join salaries s on e.emp_no = s.emp_no
where s.salary in (select max(salary) from salaries group by emp_no);
但是我不断获得每位员工的所有薪水,而不是最高薪水。我在这里想念什么?
顺便说一句,我在这里使用示例员工数据库。 https://github.com/datacharmer/test_db
答案 0 :(得分:2)
group by
在这种情况下非常方便
select
e.first_name,
e.last_name,
t.title,
max(s.salary)
from employees e
inner join titles t
on e.emp_no = t.emp_no
inner join salaries s
on e.emp_no = s.emp_no
group by
e.first_namme,
e.last_name,
t.title
答案 1 :(得分:1)
使用来自outer query
的引用使其成为correlated
子查询:
select e.first_name, e.last_name, t.title, s.salary
from employees e inner join
titles t
on e.emp_no = t.emp_no inner join
salaries s
on e.emp_no = s.emp_no
where s.salary = (select max(s1.salary) from salaries s1 where s1.emp_no = e.emp_no);