#2021 11
#新用户
#第二天是否回来--->datediff=1
#跨天也行--> union
with tnew as (
    select distinct t.uid, date(in_time) as regtime
    from tb_user_log t
    where date(in_time) between '2021-11-01' and '2021-11-30'
    and not exists(
        select 1 
        from tb_user_log tbefore
        where tbefore.uid=t.uid and  date(tbefore.in_time)<date(t.in_time)
    )
),
tnbnew as (
    select tn.regtime as regtime,count(uid) as nbnew
    from tnew tn
    group by (tn.regtime)

),
talltrace as (
    select distinct t1.uid, date(t1.in_time) as date
    from tb_user_log t1 
    union 
    select distinct t2.uid, date(t2.out_time) as date
    from tb_user_log t2 
)


select  tn.regtime as dt,
        round(sum(case when datediff(ta.date,tn.regtime)=1 then 1 else 0 end)/max(tnew.nbnew),2) as uv_left_rate
from talltrace ta   join tnew tn on ta.uid = tn.uid 
                    join tnbnew tnew on tn.regtime=tnew.regtime
group by tn.regtime