select coalesce(driver_id,"总体") 
,round(avg(grade),1)
from 

(select driver_id
from 
tb_get_car_record tr join tb_get_car_order `to` using(uid)
where date_format(order_time,'%Y-%m') = '2021-10' 
and start_time is null
and tr.order_id is not null
) t 

join tb_get_car_order using (driver_id)
group by driver_id
with rollup

/*思路:
t表就是获取满足过滤条件的司机id,
然后用表连接的方式让订单表里司机id与满足过滤的司机id相同,
获取所有满足过滤条件的司机的订单信息,然后按司机分组,统计每个司机的平均评分。

对于求满足过滤条件的司机的总体平均评分,用with rollup 即可。*/

t表按订单时间年月、有订单号,没上车时间这个逻辑过滤司机,来处理2021年10月有过取消订单记录的司机

排序要求:先按driver_id升序输出,再输出总体情况。 
不加order by子句可以提交,加了order by driver_id asc 反而错误,会让 with rolllup 汇总的“总体”变成第一行。如果非要加我也不知道怎么解决。

平均值:分数总和 /  个数总和 。分数求和、个数求和都不对grade 字段值为null 处理,所以不需要对grade 特意滤除null