思路:
①将表1左连接表2,不用join而是left join因为order_id是null的行也需要计算,需要保留表1全部信息,形成tb1,并转化event_time分别为一周的第几天 a、一天中的第几小时(或者精确时间时分秒)b,a和b用于时间筛选和分组。
②根据时间b对数据进行时段分组、聚类,然后计算相应数据。
③根据a进行周一-周五的时间筛选。

with tb1 as(
select order_id, event_time, 
date_format(event_time,'%w') as a, 
date_format(event_time,'%H%i%s') as b,
end_time, order_time, start_time
from tb_get_car_record left join tb_get_car_order using(order_id))

select period, 
count(event_time) get_car_num,
round(avg(timestampdiff(second, event_time, end_time))/60,1),
round(avg((timestampdiff(second, order_time, start_time))/60),1)
from(
select *,
case when b>=070000 and b<090000 then '早高峰'
when b>=090000 and b<170000 then '工作时间'
when b>=170000 and b<200000 then '晚高峰'
else '休息时间' end as period
from tb1
where a between 1 and 5) as tb2
group by period
order by get_car_num