当前位置: 首页 > news >正文

[高频sql50题]第1731题,每位经理的下属员工数量

题目:

表:Employees

+-------------+----------+
| Column Name | Type     |
+-------------+----------+
| employee_id | int      |
| name        | varchar  |
| reports_to  | int      |
| age         | int      |
+-------------+----------+
employee_id 是这个表中具有不同值的列。
该表包含员工以及需要听取他们汇报的上级经理的 ID 的信息。 有些员工不需要向任何人汇报(reports_to 为空)。

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

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

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

结果的格式如下:

示例 1:

输入:
Employees 表:
+-------------+---------+------------+-----+
| employee_id | name    | reports_to | age |
+-------------+---------+------------+-----+
| 9           | Hercy   | null       | 43  |
| 6           | Alice   | 9          | 41  |
| 4           | Bob     | 9          | 36  |
| 2           | Winston | null       | 37  |
+-------------+---------+------------+-----+
输出:
+-------------+-------+---------------+-------------+
| employee_id | name  | reports_count | average_age |
+-------------+-------+---------------+-------------+
| 9           | Hercy | 2             | 39          |
+-------------+-------+---------------+-------------+
解释:
Hercy 有两个需要向他汇报的员工, 他们是 Alice and Bob. 他们的平均年龄是 (41+36)/2 = 38.5, 四舍五入的结果是 39.

 要解决这个问题,可以采用以下步骤:

  1. 找出所有需要向其他员工汇报的员工的employee_id
  2. 统计每个经理的汇报员工数量,以及这些员工的年龄总和。
  3. 计算每个经理的汇报员工的平均年龄,并四舍五入到最接近的整数。
  4. 按照employee_id排序结果集。
select e2.employee_id,e2.name,count(e1.reports_to) as reports_count,round(avg(e1.age)) as average_age
fromEmployees as e1
left joinEmployees as e2
one1.reports_to = e2.employee_id
wheree1.reports_to is not null
group bye2.employee_id
order bye2.employee_id;

 

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【C语言篇】数组和函数的实践:扫雷游戏(附源码)
  • 抽卡机小程序,开启全新拆卡乐趣
  • 基于Python的金融数据采集与分析的设计与实现
  • 【银河麒麟高级服务器操作系统】实际案例分析,xfsaild占用过高
  • Chapter 8 事件组
  • gitlab修改默认访问端口
  • 简单的class.getResource与classLoader.getResource区别
  • 【Golang】go mod的使用
  • 性能测试 —— linux服务器搭建JMeter+Grafana+Influxdb监控可视化平台!
  • Spring Boot集成钉钉群通知机器人
  • Vue2 和 Vue3 自定义指令比较
  • 昂科烧录器支持PAI-IC澎湃微电子的32位微控制器PT32L031K6T6
  • 多模态论文自己学习路程_每天推出新版本_请看当天版本
  • 【vue3|第23期】Vite + Vue3: 深入理解public和assets文件夹的作用与使用
  • 安装postgresql和PGVector
  • 【跃迁之路】【641天】程序员高效学习方法论探索系列(实验阶段398-2018.11.14)...
  • Apache Pulsar 2.1 重磅发布
  • Cookie 在前端中的实践
  • css属性的继承、初识值、计算值、当前值、应用值
  • HashMap剖析之内部结构
  • IP路由与转发
  • Javascript基础之Array数组API
  • magento 货币换算
  • swift基础之_对象 实例方法 对象方法。
  • Theano - 导数
  • Vue实战(四)登录/注册页的实现
  • 关于extract.autodesk.io的一些说明
  • 浅谈Golang中select的用法
  • 小程序 setData 学问多
  • ​​​​​​​STM32通过SPI硬件读写W25Q64
  • ​520就是要宠粉,你的心头书我买单
  • ​第20课 在Android Native开发中加入新的C++类
  • ()、[]、{}、(())、[[]]等各种括号的使用
  • (20)docke容器
  • (6)STL算法之转换
  • (HAL库版)freeRTOS移植STMF103
  • (ISPRS,2021)具有遥感知识图谱的鲁棒深度对齐网络用于零样本和广义零样本遥感图像场景分类
  • (Matlab)基于蝙蝠算法实现电力系统经济调度
  • (PHP)设置修改 Apache 文件根目录 (Document Root)(转帖)
  • (pytorch进阶之路)扩散概率模型
  • (WSI分类)WSI分类文献小综述 2024
  • (第61天)多租户架构(CDB/PDB)
  • (黑马出品_高级篇_01)SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式
  • (转)拼包函数及网络封包的异常处理(含代码)
  • (轉貼) VS2005 快捷键 (初級) (.NET) (Visual Studio)
  • (自适应手机端)响应式新闻博客知识类pbootcms网站模板 自媒体运营博客网站源码下载
  • .NET Core6.0 MVC+layui+SqlSugar 简单增删改查
  • .net core开源商城系统源码,支持可视化布局小程序
  • .NET Framework 3.5安装教程
  • .net 后台导出excel ,word
  • .NET编程C#线程之旅:十种开启线程的方式以及各自使用场景和优缺点
  • .NET值类型变量“活”在哪?
  • @DataRedisTest测试redis从未如此丝滑
  • @TableId注解详细介绍 mybaits 实体类主键注解
  • @WebService和@WebMethod注解的用法