Mysql 使用GROUP BY从表中选择MAX()
我有一些桌子:Mysql 使用GROUP BY从表中选择MAX(),mysql,select,group-by,having,Mysql,Select,Group By,Having,我有一些桌子: name dep_id salary Vasia 5 1000 Oleg 5 1300 Vitia 4 1000 Sacha 3 1100 Kolia 5 1600 Lesha 2 1400 Sergey 4 1200 Marina 5 1300 Olga 5 1500 Igor 4 1400 Valia 3
name dep_id salary
Vasia 5 1000
Oleg 5 1300
Vitia 4 1000
Sacha 3 1100
Kolia 5 1600
Lesha 2 1400
Sergey 4 1200
Marina 5 1300
Olga 5 1500
Igor 4 1400
Valia 3 1500
Erema 4 1500
我需要得到他所在部门中工资最高的员工的姓名
i、 我需要
Lesha 1400
Valia 1500
Erema 1500
Kolia 1600
我试过:
SELECT name, max(salary) FROM employees GROUP BY dep_id
但这会显示不正确的值
我该怎么做
select e1.*
from employees e1
join
(
SELECT dep_id, max(salary) as msal
FROM employees
GROUP BY dep_id
) e2 on e1.dep_id = e2.dep_id
and e1.salary = e2.msal
结果:
name Sallary
---------------
Lesha 1400
Valia 1500
Erema 1500
Kolia 1600
演示
结果:
name Sallary
---------------
Lesha 1400
Valia 1500
Erema 1500
Kolia 1600
在中进行演示,尝试以下查询以获得所需的输出:
select name,sallary from employees t1 where (dep_id,sallary) in
(select dep_id,max(sallary) from employees group by dep_id);
请尝试以下查询以获得所需的输出:
select name,sallary from employees t1 where (dep_id,sallary) in
(select dep_id,max(sallary) from employees group by dep_id);