with a as (
select t3.uid,t3.first_date,t3.login_date,datediff(t3.login_date,t3.first_date) as remain_date
from (
select distinct t2.uid,date(out_time) as login_date,t2.first_date from tb_user_log t1
left join
(select uid, min(date(in_time)) as first_date from tb_user_log group by uid) t2
on t1.uid = t2.uid
where substr(date(in_time),1,7) = '2021-11' and substr(first_date,1,7) = '2021-11'
)t3
)select
a.first_date dt, round(sum(if(remain_date = 1,1,0)) / count(distinct a.uid) ,2) as uv_left_rate
from a
group by dt
order by dt;