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;