首页 文章

什么是SQL查询,以查找监督更多员工的员工姓名,而不是任何其他主管?

提问于
浏览
0

什么是SQL查询,以查找监督更多员工的员工姓名,而不是任何其他主管?

Employee
+----------+-----------+-----------+
|  Fname   |    Ssn    | Super_ssn |
+----------+-----------+-----------+
| John     | 123456789 | 333445555 |
| Franklin | 333445555 | 888665555 |
| Alicia   | 999887777 | 987654321 |
| Jennifer | 987654321 | 888665555 |
| Ramesh   | 666884444 | 333445555 |
| Joyce    | 453453453 | 333445555 |
| Ahmad    | 987987987 | 987654321 |
| James    | 888665555 | NULL      |
+----------+-----------+-----------+

这是我尝试过的

SELECT Fname
FROM Employee
WHERE Super_ssn >=ALL(Select Super_ssn
                        FROM Employee)
  • Fname =员工的姓名

  • SSN =员工SSN

  • Supervisor_ssn =员工主管的SSN

  • SSN表也包含Supervisor 's SSN' . 他们都在同一张 table 上

  • DB是mySQL

  • 这是一个名为"Employee"的表

2 回答

  • 0

    这里最简单的方法就是按雇员人数列出:

    SELECT Supervisor_ssn, COUNT(SSN) as n 
    FROM Employee
    GROUP BY Supervisor_ssn
    ORDER BY n DESC
    

    你想要的那个将成为最重要的 .

    希望能帮助到你

  • 1

    试试这个 . 如果您想要一个由最多和最少监督的人员列出的列表,请删除LIMIT 1子句

    SELECT
        e1.`Fname`,
        COUNT(e2.`Fname`) AS `Num_Empl`
    FROM `Employee` e1
    JOIN `Employee` e2
    ON e2.`Ssn` = e1.`Super_ssn`
    GROUP BY e1.`Fname`
    ORDER BY `Num_Empl` DESC
    LIMIT 1;
    

相关问题