美文网首页
【mysql】1731. 每位经理的下属员工数量

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

作者: 程序员小2 | 来源:发表于2023-06-23 09:00 被阅读0次

题目:

Table: Employees

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

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

编写SQL查询需要听取汇报的所有经理的ID、名称、直接向该经理汇报的员工人数,以及这些员工的平均年龄,其中该平均年龄需要四舍五入到最接近的整数。

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

查询结果的格式如下:

Employees table:
+-------------+---------+------------+-----+
| employee_id | name | reports_to | age |
+-------------+---------+------------+-----+
| 9 | Hercy | null | 43 |
| 6 | Alice | 9 | 41 |
| 4 | Bob | 9 | 36 |
| 2 | Winston | null | 37 |
+-------------+---------+------------+-----+

Result table:
+-------------+-------+---------------+-------------+
| employee_id | name | reports_count | average_age |
+-------------+-------+---------------+-------------+
| 9 | Hercy | 2 | 39 |
+-------------+-------+---------------+-------------+
Hercy 有两个需要向他汇报的员工, 他们是 Alice and Bob. 他们的平均年龄是 (41+36)/2 = 38.5, 四舍五入的结果是 39.

思路:

拆分, 先按照经理group by, 则能count() 就是经理的下属人数, ROUND(avg(age)) 下属的平均年龄:
select reports_to, count(
) as c, ROUND(avg(age)) as avg_age from Employees where reports_to is not null group by reports_to
然后再left join Employees表,关联名称即可

mysql:

# Write your MySQL query statement below



select  a.reports_to as employee_id, b.name as name, a.c as reports_count, a.avg_age as average_age from 
(select reports_to, count(*) as c, ROUND(avg(age)) as avg_age from Employees where reports_to is not null  group by reports_to ) as a 

left join 

Employees as b on a.reports_to =b.employee_id

 order by a.reports_to



相关文章

  • leetcode数据库类型:1731.每位经理的下属员工数量,难

    leetcode数据库类型:1731.每位经理的下属员工数量,难度:简单 解答: round()函数用于把数...

  • 友谊长存

    如果每位经理都能慎重地对待员工测评,定期思考每个员工是不是对应岗位的最佳人选,是否需要招聘新人代替现有员工,那么,...

  • 7.24

    学习分享:从员工到经理,最容易出的问题之一,就是“功劳属于谁,错误怪罪谁”的问题,常常与下属争功,或贬低下属、抬高...

  • 推功揽过

    从员工到经理,最容易出的问题之一,就是“功劳属于谁,错误怪罪谁”的问题,常常与下属争功,或贬低下属、抬高自己。 成...

  • 认识推功揽过

    从员工到经理,最容易出的问题之一,就是“功劳属于谁,错误怪罪谁”的问题,常常与下属争功,或贬低下属、抬高自己。 成...

  • 2018-09-03

    推功揽过 从员工到经理.最容易出的问题之一.就是“功劳属于谁.错误怪罪谁.的问题.常常与下属争功.或贬低下属.抬高...

  • 2018-07-24

    认识推功揽过 从员工到经理,最容易出的问题之一,就是“功劳属于谁,错误怪罪谁”的问题,常常与下属争功,或贬低下属、...

  • 2018-07-24

    认识推功揽过 从员工到经理,最容易出的问题之一,就是“功劳属于谁,错误怪罪谁”的问题,常常与下属争功,或贬低下属、...

  • 如何成为一个成功的职业经理人01

    01 经理人如何管理下属 很多组织把受教育培训给管理者,但是管理者没有100%传递给下属。面对顾客的是前线员工。...

  • 你管理多少人,日常如何有效管理下属。

    我的管理幅度是6到7个直线下属。我管理过株洲的酒店,房间数量196间, 员工总数三十人左右。下属分7个职能模块:前...

网友评论

      本文标题:【mysql】1731. 每位经理的下属员工数量

      本文链接:https://www.haomeiwen.com/subject/hvomydtx.html