select period,
       count(*) get_car_num,
       round(avg(wait_time),1) avg_wait_time,
       round(avg(dispatch_time),1) avg_dispatch_time
from (select case
             when time(event_time) BETWEEN '07:00:00' and '08:59:59' then '早高峰'
             when time(event_time) BETWEEN '09:00:00' and '16:59:59' then '工作时间'
             when time(event_time) BETWEEN '17:00:00' and '19:59:59' then '晚高峰'
             else '休息时间' end as period,
             TIMESTAMPDIFF(second,event_time,order_time)/60 as wait_time,
             TIMESTAMPDIFF(second,order_time,start_time)/60 as dispatch_time
       from tb_get_car_order a
       left join tb_get_car_record b
       on a.order_id = b.order_id
       where weekday(event_time) BETWEEN 0 and 4
      ) t
group by period
order by get_car_num;