SQL 刷题/【京东】统计快递创建到首次发出的平均间隔
上一题下一题简单通过率 40%

【京东】统计快递创建到首次发出的平均间隔

JOIN 连接聚合函数GROUP BY子查询日期函数面试真题

题目描述

来源:京东 SQL 面试真题

某物流公司需要统计快递单从创建到首次发出的平均等待时间,并将结果换算为小时。

数据表

express_tb 快递信息表

字段类型说明
exp_numberVARCHAR快递单号,主键
exp_typeVARCHAR快递种类
out_cityVARCHAR快递发出城市
in_cityVARCHAR快递邮入城市
create_timeDATETIME快递单创建时间

exp_action_tb 快递运输动作表

字段类型说明
exp_numberVARCHAR快递单号
transport_typeVARCHAR运输类型
out_timeDATETIME本次运输动作的发出时间,可为空
in_timeDATETIME本次运输动作的到达时间,可为空

统计口径

  • 同一快递单可能有多条运输动作,快递邮出时间取最早的非空 out_time
  • 单个快递的等待间隔为 首次发出时间 - create_time
  • 没有任何有效发出时间的快递不参与平均值计算。
  • 先按分钟理解平均间隔,最终除以 60 换算为小时。
  • 结果四舍五入保留 3 位小数。
  • 没有已发出快递时输出 0。

期望输出列

列名说明
avg_interval_hours从快递单创建到首次发出的平均间隔,单位小时

数据样例

当前运行环境
exp_numberPKVARCHAR(32)exp_typeVARCHAR(50)out_cityVARCHAR(50)in_cityVARCHAR(50)create_timeDATETIME
JD2001普通件北京上海2022-06-01 08:00:00
JD2002生鲜广州深圳2022-06-01 09:00:00
JD2003易碎品杭州成都2022-06-01 10:15:00
JD2004文件南京武汉2022-06-01 11:00:00
输入数据显示 4 / 4
SQL 编辑器正在保存草稿...
正在加载 SQL 编辑器...

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