select 
    period,
    count(a.order_id) as get_car_num,
    round(avg(timestampdiff(second,event_time,order_time)/60), 1) as avg_wait_time,
    round(avg(timestampdiff(second,order_time,start_time)/60), 1) as avg_dispatch_time
from 
    (
        select 
            case when hour(event_time)>=7 and hour(event_time)<9 then '早高峰'
                when hour(event_time)>=9 and hour(event_time)<17 then '工作时间'
                when hour(event_time)>=17 and hour(event_time)<20 then '晚高峰'
                else '休息时间'
            end as period,
            event_time,
            order_id
        from 
            tb_get_car_record
        where 
            weekday(event_time) between 0 and 4
    ) a
left join 
    tb_get_car_order b 
using(order_id) 
group by    
    period
order by 
    get_car_num