
为了评估不同城市的有效订单完成情况,我们需要计算每个城市的有效订单完成率。有效订单是指订单状态为 "completed" 并且用户和司机均未被禁止的订单。这将帮助我们更好地了解不同城市的订单完成情况,从而优化服务质量和资源配置。
任务
从 hll_t1
(订单表)和 hll_t2
(用户角色表)中,计算每个城市的有效订单完成率。
有效订单是指订单状态为 "completed" 并且用户和司机均未被禁止的订单。
结果应以百分比形式展示,并保留两位小数。
考点
- 连接操作: 需要将订单表和用户角色表进行多次连接。
- 条件过滤: 需要过滤掉被禁止的用户和司机。
- 聚合函数: 需要使用聚合函数计算订单数量。
- 子查询: 可能需要使用子查询来计算总订单数和有效订单数。
- 百分比计算: 需要将有效订单数除以总订单数并转换为百分比。
hll_t1,订单表
order_id | usr_id | driver_id | cty | status | order_dt |
---|---|---|---|---|---|
1 | 1 | d16 | 北京 | cancel_by_driver | 2020-01-23 |
2 | 6 | d12 | 上海 | completed | 2020-01-24 |
3 | 3 | d15 | 深圳 | cancel_by_usr | 2020-01-25 |
hll_t2,用户角色表,banned=1表示该用户被禁止,role有两个枚举值,usr表示货主、driver表示司机。
usr_id | banned | role |
---|---|---|
1 | 0 | usr |
2 | 0 | usr |
3 | 0 | usr |
 成为会员,解锁300道大厂数分SQL真题
MySQL 8.0