essay

hot50-至少有5名直接下属的经理

#mysql

hot50——至少有5名直接下属的经理

表: Employee

|

Column Name Type
id int
name varchar
department varchar
managerId int

id 是此表的主键(具有唯一值的列)。
该表的每一行表示雇员的名字、他们的部门和他们的经理的id。
如果managerId为空,则该员工没有经理。
没有员工会成为自己的管理者。

编写一个解决方案,找出至少有五个直接下属的经理。

以 任意顺序 返回结果表。

查询结果格式如下所示。

示例 1:

输入:
Employee 表:

id name department managerId
101 John A Null
102 Dan A 101
103 James A 101
104 Amy A 101
105 Anne A 101
106 Ron B 101

输出:

name
John

答:

select m.name
from Employee as e       -- e 代表员工 (下属)
join Employee as m       -- m 代表经理
on e.managerId = m.id -- 员工的经理ID = 经理的ID
group by m.id, m.name
having count(e.id) >= 5
  • JOIN:把“员工表”和“经理表”连起来,条件是“员工的经理ID”等于“经理的ID”。这样每一行就代表了“某经理”和“他的一个下属”。
  • GROUP BY m.id:按经理分组。
  • COUNT(e.id):数一下每个经理名下有多少个下属。
comments如果有不同意见或者补充,直接留在这里。
contact

在别处继续找到我

如果你想聊技术、设计,或者只是打个招呼。

暂未配置外部链接