1)请找到2021年10月有过取消订单记录的司机,
- DATE_FORMATE(order_time,'%Y%m')='202110' -- 2021年10月份
- WHERE finish_time IS NOT NULL AND start_time IS NULL --取消的订单
SELECT driver_id FROM tb_get_car_order WHERE DATE_FORMAT(order_time,'%Y%m')='202110' -- 2021年10月份 AND finish_time IS NOT NULL AND start_time IS NULL -- 取消的订单2)计算他们每人全部已完成的有评分订单的平均评分及总体平均评分,保留1位小数。
- grade IS not NULL --有评分订单
- AVG(grade) -- 平均评分
- GROUP BY driver_id WITH ROLLUP --按照司机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')='202110' -- 2021年10月份 AND finish_time IS NOT NULL AND start_time IS NULL -- 取消的订单 ) GROUP BY driver_id WITH ROLLUP;