SQL 刷题/【携程】统计各岗位员工平均工作时长
上一题下一题中等通过率 0%

【携程】统计各岗位员工平均工作时长

JOIN 连接聚合函数GROUP BY日期函数ORDER BY用户行为分析面试真题

题目描述

来源:携程 SQL 面试真题

某公司需要根据员工信息和单日出勤记录,统计各岗位员工的平均工作时长。

数据表

staff_tb 员工信息表

字段类型说明
staff_idBIGINT员工 ID
staff_nameVARCHAR员工姓名
staff_genderVARCHAR员工性别
postVARCHAR员工岗位类别
departmentVARCHAR员工所在部门

attendent_tb 出勤信息表

字段类型说明
info_idBIGINT出勤信息 ID
staff_idBIGINT员工 ID
first_clockinDATETIME上班打卡时间;未打卡时为 NULL
last_clockinDATETIME下班打卡时间;未打卡时为 NULL

题目要求

  • 计算每位员工当天的工作时长,单位为小时。
  • 按岗位类别统计员工平均工作时长。
  • first_clockin 或 last_clockin 为 NULL 的记录不参与统计。
  • 平均工作时长四舍五入保留 3 位小数。
  • 按平均工作时长降序排列;平均值相同时按岗位名称升序排列。

期望输出列

列名说明
post员工岗位类别
work_hours该岗位员工的平均工作时长,单位为小时

数据样例

当前运行环境
staff_idPKBIGINTstaff_nameVARCHAR(50)staff_genderVARCHAR(10)postVARCHAR(50)departmentVARCHAR(50)
1AngusmaleFinancialdep1
2CathyfemaleDirectordep1
3AldisfemaleDirectordep2
4LawsonmaleEngineerdep1
5CarlmaleEngineerdep2
6BenmaleEngineerdep1
7RosefemaleFinancialdep2
输入数据显示 7 / 7
SQL 编辑器正在保存草稿...
正在加载 SQL 编辑器...

运行你的 SQL 查询后,结果将显示在这里