select dt, round(avg(if_re is not null), 2) uv_left_rate
from (
    # 然后将新用户登录记录表与tb_user_log按特定条件连接
    select t2.uid, date(f_in) dt, min(in_time) if_re    # 其中如果if_re不为空,则是次日留存了的新用户
    from (
        # 先查询2021年11月每天的新用户在第一天登录的记录
        select *
        from (
            select uid, min(in_time) f_in
            from tb_user_log
            group by uid
        ) t1
        where date_format(f_in, '%Y%m') = '202111'
    ) t2
    left join tb_user_log t
    on t2.uid = t.uid and (datediff(date(t.in_time), date(t2.f_in))=1 or datediff(date(t.out_time), date(f_in))=1)
    group by t2.uid, f_in
) t3
group by dt
order by dt;