题解 | #有取消订单记录的司机平均评分#
有取消订单记录的司机平均评分
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升序可以不加,总体情况自然在最下方