WITH t1 as( -- 列出所有的活跃日期
    SELECT uid,date(in_time) dt FROM tb_user_log
    UNION ALL
    SELECT uid,date(out_time) dt FROM tb_user_log
),t2 as( -- 求出最早的活跃日期(注册日期)
    SELECT uid,min(dt) md FROM t1 group by uid order by uid
),t3 as(
    select
           #group_concat(DISTINCT t1.uid),
           dt,
           count(DISTINCT t1.uid) 'dau' -- 统计每天的活跃用户id
    FROM t1
    group by dt
    order by dt
),t4 as(
    SELECT dt,count(uid) 'reg_num' -- 注册时间该天的新用户数量
    FROM t3
    left JOIN t2
    ON t2.md = t3.dt
    group by t3.dt
)
SELECT t3.*,
       round(reg_num/dau,2)
       FROM t3 left join t4
ON t3.dt = t4.dt;