WITH a AS(
SELECT city, event_time AS uv_time, 1 AS uv_cnt
FROM tb_get_car_record
UNION ALL
SELECT city, end_time AS uv_time, -1 AS uv_cnt
FROM tb_get_car_record
WHERE order_id IS NULL
UNION ALL
SELECT city, IFNULL(start_time, finish_time) AS uv_time, -1 AS uv_cnt
FROM tb_get_car_order JOIN tb_get_car_record USING(order_id)
),

b AS (SELECT city, SUM(uv_cnt) OVER (PARTITION BY city ORDER BY uv_time, uv_cnt DESC) AS sss FROM a WHERE uv_time LIKE '2021-10%')

SELECT city, MAX(sss) AS max_wait_uv FROM b
GROUP BY city 
ORDER BY max_wait_uv, city