mysql - SQL查询,根据另一列选择一列的组

标签 mysql sql

我正在使用以下格式的员工和信息表 (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/

相关文章:

php - 一个 SQL 查询中的多个计数

Python:以UTF-8从Mysql查询数据

mysql - 当第一种情况发生时,Sql 两个多线程唯一忽略

mysql - 在 MySQL 中按数字顺序排序,然后按字母顺序排序

mysql - 如何编写一个引用表中字段的 MySQL 函数?

sql - 经典 ASP while 循环显示错误

mysql - 如何不选择带有链接表的行

mysql - SELECT 仅在 @sql 语句内不起作用

MYSQL select 基于selects

php - Eloquent : Joining Many To Many, 获取一个字段