# 解法1: 滑动窗口RANGE版
SELECT DISTINCT
    dt,
    ROUND(finish/7,2) finish_num_7d,
    ROUND((total-finish)/7,2) cancel_num_7d
FROM(
    SELECT
        DATE(order_time) dt,
        COUNT(start_time) OVER(ORDER BY DATE(order_time) RANGE BETWEEN INTERVAL 6 DAY PRECEDING AND CURRENT ROW) finish,
        COUNT(*) OVER(ORDER BY DATE(order_time) RANGE BETWEEN INTERVAL 6 DAY PRECEDING AND CURRENT ROW) total
    FROM
        tb_get_car_order
)t
WHERE
    dt BETWEEN '2021-10-01' AND '2021-10-03'
ORDER BY dt

# 解法2:表连接+分组统计
# SELECT
#     dt,
#     ROUND(COUNT(IF(DATEDIFF(dt,order_time) BETWEEN 0 AND 6,start_time,NULL))/7,2),
#     ROUND((COUNT(IF(DATEDIFF(dt,order_time) BETWEEN 0 AND 6,1,NULL)) - 
#     COUNT(IF(DATEDIFF(dt,order_time) BETWEEN 0 AND 6,start_time,NULL)))/7,2)
# FROM
#     tb_get_car_order
# JOIN(
#     SELECT DISTINCT 
#         DATE(order_time) dt 
#     FROM 
#         tb_get_car_order 
#     WHERE 
#         DATE(order_time) BETWEEN '2021-10-01' AND '2021-10-03'
# )t
# GROUP BY
#     dt
# ORDER BY
#     dt