获得每位员工的最高薪水

时间:2019-01-28 17:18:43

标签: mysql sql max

我正在尝试获取每位员工的最高薪水。

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

2 个答案:

答案 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);
相关问题