leetcode-SQL-570. 至少有5名直接下属的经理

简介: leetcode-SQL-570. 至少有5名直接下属的经理

题目

题目链接

表: Employee

+-------------+---------+
| Column Name | Type    |
+-------------+---------+
| id          | int     |
| name        | varchar |
| department  | varchar |
| managerId   | int     |
+-------------+---------+
Id是该表的主键列。
该表的每一行都表示雇员的名字、他们的部门和他们的经理的id。
如果managerId为空,则该员工没有经理。
没有员工会成为自己的管理者。

编写一个SQL查询,查询至少有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 |
+------+

解题

方法一:子查询

1.找到出现大于等于5次的 经理id

2.根据经理id去查询名字

select name
from Employee
where id in(
    select managerId as id
    from Employee
    group by managerId
    having count(managerId)>=5
);

方法二:联结

一定要使用inner join,因为存在它们的经理id不在这个表里面,从而导致结果是null而不是空。

select b.name
from Employee as a
inner join Employee as b
on a.managerId=b.id
group by a.managerId
having count(a.managerId)>=5;
相关文章
|
9月前
|
SQL
leetcode-SQL-181. 超过经理收入的员工
leetcode-SQL-181. 超过经理收入的员工
54 0
|
9月前
|
SQL 算法 vr&ar
☆打卡算法☆LeetCode 181. 超过经理收入的员工 算法解析
☆打卡算法☆LeetCode 181. 超过经理收入的员工 算法解析
|
9月前
|
SQL
leetcode-SQL-1731. 每位经理的下属员工数量
leetcode-SQL-1731. 每位经理的下属员工数量
68 0
|
9月前
|
SQL 数据挖掘 数据处理
「SQL面试题库」 No_10 超过经理收入的员工
「SQL面试题库」 No_10 超过经理收入的员工
|
数据库
LeetCode(数据库)- 上级经理已离职的公司员工
LeetCode(数据库)- 上级经理已离职的公司员工
138 0
|
数据库
LeetCode(数据库)- 每位经理的下属员工数量
LeetCode(数据库)- 每位经理的下属员工数量
102 0
|
数据库
LeetCode(数据库)- 仓库经理
LeetCode(数据库)- 仓库经理
105 0
|
5月前
|
Unix Shell Linux
LeetCode刷题 Shell编程四则 | 194. 转置文件 192. 统计词频 193. 有效电话号码 195. 第十行
本文提供了几个Linux shell脚本编程问题的解决方案,包括转置文件内容、统计词频、验证有效电话号码和提取文件的第十行,每个问题都给出了至少一种实现方法。
LeetCode刷题 Shell编程四则 | 194. 转置文件 192. 统计词频 193. 有效电话号码 195. 第十行
|
6月前
|
Python
【Leetcode刷题Python】剑指 Offer 32 - III. 从上到下打印二叉树 III
本文介绍了两种Python实现方法,用于按照之字形顺序打印二叉树的层次遍历结果,实现了在奇数层正序、偶数层反序打印节点的功能。
76 6
|
6月前
|
搜索推荐 索引 Python
【Leetcode刷题Python】牛客. 数组中未出现的最小正整数
本文介绍了牛客网题目"数组中未出现的最小正整数"的解法,提供了一种满足O(n)时间复杂度和O(1)空间复杂度要求的原地排序算法,并给出了Python实现代码。
145 2