假设我有两个表/列:
Employee - > EmpId, DeptNo, EmpName, Salary
Department -> DeptNo, DeptName
编写查询以获取所有部门中薪水最高的员工姓名。 我试过这个:
Select max(salary),empname
from Employee
where deptno = (select deptno
from department
where deptname in('isd','it','sales')
是否正确?其实是一道面试题。
最佳答案
这是 groupwise max 的示例MySQL模式。一种方法是:
SELECT e.salary, e.name, d.deptname
FROM Employee AS e
JOIN (
SELECT max(salary) AS max_sal, deptno
FROM Employee
GROUP BY deptno
) AS d_max ON (e.salary=d_max.max_sal AND e.deptno=d_max.deptno)
JOIN Department AS d ON (e.deptno = d_max.deptno)
如果一个部门有多个员工拥有最高薪水,它会为一个部门返回不止一行
关于mysql - 关于写SQL查询的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13955723/