SELECT
    dt,
    ROUND(COUNT(DISTINCT IF(DATEDIFF(dt,event_time) BETWEEN 0 AND 6,product_id,NULL))/total,3) sale_rate,
    ROUND(1-COUNT(DISTINCT IF(DATEDIFF(dt,event_time) BETWEEN 0 AND 6,product_id,NULL))/total,3) unsale_rate
FROM(
    SELECT product_id, COUNT(*) OVER() total FROM tb_product_info WHERE shop_id=901
) pi
INNER JOIN
    tb_order_detail od USING(product_id)
INNER JOIN
    tb_order_overall oo USING(order_id)
JOIN(
    SELECT DATE(event_time) dt FROM tb_order_overall WHERE DATE(event_time) BETWEEN '2021-10-01' AND '2021-10-03'
) time
GROUP BY
    dt, total
ORDER BY
    dt