select
    df,
    count(distinct tb1.uid) dau,
    round(
        count(distinct tb2.uid) / count(distinct tb1.uid),
        2
    ) uv_new_ratio
from
    (
        select
            uid,
            date (in_time) df
        from
            tb_user_log
        union
        select
            uid,
            date (out_time) df
        from
            tb_user_log
    ) tb1
    left join (
        select
            uid,
            min(date (in_time)) df_new
        from
            tb_user_log
        group by
            uid
    ) tb2 on tb1.df = tb2.df_new
group by
    df
order by
    df asc