MYSQL COUNT()函数 HAVING(函数)570. 至少有5名直接下属的经理

该问题要求编写一个SQL查询来找出那些至少有5名直接下属的经理。首先,通过GROUPBY和COUNT函数确定managerId对应的下属数量,然后使用HAVING子句过滤出满足条件的经理ID。最后,在主查询中,从Employee表中选择这些经理的名字。
摘要由CSDN通过智能技术生成
表: 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的managerId

Write your MySQL query statement below
select managerId as id from Employee
group by managerId
having count(managerId)>=5

2.按照经理id找到下属的名字

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

注意:在查询过程中执行顺序:from>where>group(含聚合)>having>order>select

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值