题解 | #有取消订单记录的司机平均评分#

有取消订单记录的司机平均评分

https://www.nowcoder.com/practice/f022c9ec81044d4bb7e0711ab794531a

#需求:找到2021年10月有过取消订单记录的司机,计算他们每人全部已完成的有评分订单的平均评分及总体平均评分
#输出:司机ID、平均评分+总体情况
#要求:范围为2021年10月有过取消订单记录的司机;计算已完成的有评分订单的评分,保留1位小数;先按driver_id升序输出,再输出总体情况
#要用到的数据:driver_id、grade、finish_time、order_time
#拆分问题:2021年10月有过取消订单记录的司机:date_format(order_time,'%Y-%m')='2021-10'+is null(fare)
#已完成的有评分订单的平均评分:avg(grade)+where grade is not null+group by driver_id
#输出总体情况:with rollup+ifnull(driver_id,'总体')
select ifnull(driver_id,'总体') driver_id,round(avg(grade),1) avg_grade
from tb_get_car_order
where grade is not null
and driver_id in(
  select driver_id
  from tb_get_car_order
  where date_format(order_time,'%Y-%m')='2021-10' and fare is null
)
group by driver_id
with rollup
#总结:分为两个要筛选的数据,一个是有评分的订单,还有一个是对司机的筛选;数据输出默认升序,要求中的按driver_id升序可以不加,总体情况自然在最下方

全部评论

相关推荐

头像
不愿透露姓名的神秘牛友
04-08 00:50
点赞 评论 收藏
转发
点赞 收藏 评论
分享
牛客网
牛客企业服务