题目
表: Employee
Column Name | Type |
---|---|
id | int |
name | varchar |
department | varchar |
managerId | int |
在 SQL 中,id 是该表的主键列。 该表的每一行都表示雇员的名字、他们的部门和他们的经理的id。 如果managerId为空,则该员工没有经理。 没有员工会成为自己的管理者。
查询至少有5名直接下属的经理 。
以 任意顺序 返回结果表。
查询结果格式如下所示。
示例 1:
输入: Employee 表:
id | name | department | managerId |
---|---|---|---|
101 | John | A | None |
102 | Dan | A | 101 |
103 | James | A | 101 |
104 | Amy | A | 101 |
105 | Anne | A | 101 |
106 | Ron | B | 101 |
输出:
name |
---|
John |
题解
sql
-- 直接下级 按照上级id分组 大于等于5及为结果
SELECT `e`.`name`
FROM (SELECT `managerId`
FROM `Employee`
GROUP BY `managerId`
HAVING COUNT(1) >= 5) `t`
INNER JOIN `Employee` `e` ON `t`.`managerId` = `e`.`id`
1
2
3
4
5
6
7
2
3
4
5
6
7