我正在使用以下格式的员工和信息表 (Fname、Lname、Ssn、Bdate、薪水、Dno) 其中 Dno 是员工工作的部门编号
我正在尝试创建一个查询,返回与薪水最高的人在同一部门工作的员工姓名。我知道我需要按 Dno 进行分组,但是如何根据另一列对我的组进行排序。
我一直在尝试类似的事情
SELECT Fname, Lname
FROM EMPLOYEES
GROUPBY Dno
HAVING max(salary) in (dno)
我也尝试过进行嵌套选择,但我似乎无法获得正确的顺序。我是 SQL 新手,所以任何建议都表示赞赏,我理解它可能非常简单,我只是无法概念化它。
最佳答案
编写一个子查询,获取最高工资员工的部门编号:
SELECT dno
FROM Employees
ORDER BY salary DESC
LIMIT 1
然后您可以使用它来过滤同一部门的员工。
SELEECT Fname, Lname
FROM Employees AS e
JOIN (
SELECT dno
FROM Employees
ORDER BY salary DESC
LIMIT 1
) AS m ON e.dno = m.dno
关于mysql - SQL查询,根据另一列选择一列的组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75598023/