SELECT
CASE
WHEN DATE_FORMAT(event_time, '%H:%i:%s') >= '07:00:00' AND DATE_FORMAT(event_time, '%H:%i:%s') < '09:00:00' THEN '早高峰'
WHEN DATE_FORMAT(event_time, '%H:%i:%s') >= '09:00:00' AND DATE_FORMAT(event_time, '%H:%i:%s') < '17:00:00' THEN '工作时间'
WHEN DATE_FORMAT(event_time, '%H:%i:%s') >= '17:00:00' AND DATE_FORMAT(event_time, '%H:%i:%s') < '20:00:00' THEN '晚高峰'
ELSE '休息时间'
END AS period,
COUNT(DISTINCT order_id) AS get_car_num,
ROUND(AVG(TIMESTAMPDIFF(second, event_time, end_time))/60, 1) AS avg_wait_time,
ROUND(AVG(TIMESTAMPDIFF(second, order_time, start_time))/60, 1) AS avg_dispatch_time
FROM
tb_get_car_record
JOIN
tb_get_car_order USING(order_id)
WHERE
WEEKDAY(event_time) in (0,1,2,3,4)
GROUP BY
period
ORDER BY
get_car_num, avg_wait_time