select * from ( select date (order_time) as dt, round( avg(count(start_time)) over ( order by date (order_time) rows 6 preceding ), 2 ) finish_num_7d, round( avg( sum( case when start_time is null then 1 else 0 end ) ) over ( order by date (order_time) rows 6 preceding ), 2 ) cancel_num_7d from tb_get_car_order group by dt ) as t where dt between '2021-10-01' and '2021-10-03';