-- 1. 处理订单表:获取每个用户每日首次下单日期(去重,同一用户单日仅计1次)
WITH t1 AS (
    SELECT 
        user_id, 
        MIN(DATE(order_time)) AS order_time_1  -- 取用户当日首次下单日期
    FROM order_tb  
    GROUP BY DATE(order_time), user_id  -- 按用户+日期分组去重
), 
-- 2. 处理访问表:获取用户每日日首次访问日期(去重,同一用户当日仅计1次)
t2 AS (
    SELECT 
        user_id, 
        MIN(DATE(visit_time)) AS visit_time_1  -- 取用户当日首次访问日期
    FROM visit_tb 
    GROUP BY DATE(visit_time), user_id  -- 按用户+日期分组去重
)  
-- 3. 计算每日转化率:当日下单人数/当日访问人数(百分比)
SELECT 
    t2.visit_time_1 AS date,  -- 统计日期(以访问日期为准)
    -- 计算转化率并格式化:四舍五入保留1位小数+百分号
    CONCAT(
        ROUND(
            SUM(CASE WHEN t1.user_id IS NOT NULL THEN 1 ELSE 0 END)  -- 当日下单用户数
            / COUNT(t2.user_id)  -- 当日访问总用户数
            * 100, 
            1
        ), 
        '%'
    ) AS cr 
FROM t2 
-- 左连接关联:仅匹配"同一用户+同一日期"的访问和下单记录
LEFT JOIN t1 
    ON t2.user_id = t1.user_id 
    AND t2.visit_time_1 = t1.order_time_1 
GROUP BY t2.visit_time_1  -- 按日期分组统计
ORDER BY t2.visit_time_1 ;  -- 按日期升序排序