力扣高频SQL 50题(基础版)第三十一题

力扣高频SQL 50题(基础版)第三十一题

1731.每位经理的下属员工数量

题目说明

表:Employees

±------------±---------+

| Column Name | Type |

±------------±---------+

| employee_id | int |

| name | varchar |

| reports_to | int |

| age | int |

±------------±---------+

employee_id 是这个表中具有不同值的列。

该表包含员工以及需要听取他们汇报的上级经理的 ID 的信息。 有些员工不需要向任何人汇报(reports_to 为空)。

对于此问题,我们将至少有一个其他员工需要向他汇报的员工,视为一个经理。

编写一个解决方案来返回需要听取汇报的所有经理的 ID、名称、直接向该经理汇报的员工人数,以及这些员工的平均年龄,其中该平均年龄需要四舍五入到最接近的整数。

返回的结果集需要按照 employee_id 进行排序。

思路分析

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

使用自连接

实现过程

准备数据
Create table If Not Exists Employees(employee_id int, name varchar(20), reports_to int, age int)
Truncate table Employees
insert into Employees (employee_id, name, reports_to, age) values ('9', 'Hercy', 'None', '43')
insert into Employees (employee_id, name, reports_to, age) values ('6', 'Alice', '9', '41')
insert into Employees (employee_id, name, reports_to, age) values ('4', 'Bob', '9', '36')
insert into Employees (employee_id, name, reports_to, age) values ('2', 'Winston', 'None', '37')
实现方式
elect e1.employee_id,
       e1.name,
       count(e2.reports_to) reports_count,
       round(avg(e2.age),0) average_age
       from Employees e1 join Employees e2
       on e1.employee_id=e2.reports_to group by e1.employee_id,e1.name order by e1.employee_id;
结果截图

e1.employee_id,e1.name order by e1.employee_id;


#### 结果截图

![外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传](https://img-home.csdnimg.cn/images/20230724024159.png?origin_url=https%3A%2F%2Ficnblocl7c16.feishu.cn%2Fspace%2Fapi%2Fbox%2Fstream%2Fdownload%2Fasynccode%2F%3Fcode%3DYWIyZmFkMjc4ZGE0NTNhOTVmNGJjNjdkOTAyOGM4NzBfQmR5YzEyT0U3bDlRYUc0bmN2Um15QXZNY09rbEhHWGpfVG9rZW46TXpDRGJWc1Brb242aWF4T0xLQWNmR3d5bkhlXzE3MjIzODY1OTA6MTcyMjM5MDE5MF9WNA&pos_id=img-mEwrz3s8-1722386716341)
  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值