570. 至少有5名直接下属的经理 - 力扣(LeetCode)

📅 发布时间:2026/7/11 4:57:28 👁️ 浏览次数:
570. 至少有5名直接下属的经理 - 力扣(LeetCode)
代码# Write your MySQL query statement below select e1.name from Employee e1, Employee e2 where e1.id e2.managerId Group by e1.id, e1.name Having count(e2.id) 51.SELECT e1.name我们最终想要的是经理的姓名。这里的e1代表“可能是经理”的员工。2.FROM Employee e1, Employee e2把Employee表用了两次分别起别名e1代表经理e2代表普通员工下属这种写法叫自连接self-join—— 一张表和自己关联。 为什么能这样因为“经理”和“员工”其实都在同一张Employee表里3.WHERE e1.id e2.managerId关键连接条件意思是e1 的 id 等于 e2 的 managerId也就是说e1 是 e2 的经理通过这个条件我们就把“经理”和“他的下属”配对起来了。✅ 举例如果e2是 DanmanagerId 101那么e1就是 id101 的 John这一行就表示 “John 是 Dan 的经理”4.GROUP BY e1.id, e1.name现在我们要按经理分组统计每个经理有多少个下属。为什么同时GROUP BY e1.id和e1.name虽然id是主键唯一但 SQL 标准要求SELECT中非聚合字段必须出现在GROUP BY中。所以为了安全兼容尤其在 MySQL 严格模式下同时写上id和name。5.HAVING COUNT(e2.id) 5COUNT(e2.id)统计每个经理对应的下属数量即 e2 有多少行HAVING用于对分组后的结果进行筛选只保留那些下属数量 ≥ 5 的经理结果解题步骤