SQL 刷题/【阿里巴巴】统计各快递种类平均运输时长
上一题下一题简单通过率 100%

【阿里巴巴】统计各快递种类平均运输时长

WHERE 条件JOIN 连接聚合函数GROUP BY日期函数ORDER 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快递到达时间,可为空

统计口径

  • 每条运输动作的运输时长为 in_time - out_time
  • 使用秒级时间差除以 3600.0 换算为小时,保留不足一小时的部分。
  • 只统计 out_timein_time 均不为空的完整运输动作。
  • 按快递种类计算所有完整运输动作的平均时长。
  • 没有完整运输动作的快递种类不输出。

题目要求

  • 输出快递种类和平均运输时长。
  • 平均运输时长单位为小时,四舍五入保留 1 位小数。
  • 按平均运输时长从小到大排序。
  • 平均时长相同时,按快递种类升序排列。

期望输出列

列名说明
exp_type快递种类
avg_transport_hours平均运输时长,单位小时

数据样例

当前运行环境
exp_numberPKVARCHAR(32)exp_typeVARCHAR(50)out_cityVARCHAR(50)in_cityVARCHAR(50)create_timeDATETIME
ALI1001普通件北京上海2022-06-01 08:00:00
ALI1002普通件广州深圳2022-06-01 08:30:00
ALI1003生鲜杭州南京2022-06-01 09:00:00
ALI1004生鲜成都重庆2022-06-01 09:30:00
ALI1005易碎品苏州北京2022-06-01 10:00:00
ALI1006文件上海天津2022-06-01 10:30:00
输入数据显示 6 / 6
SQL 编辑器正在保存草稿...
正在加载 SQL 编辑器...

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