select a.dt,
ifnull(round(count(distinct b.uid)/count(a.uid),2),0) uv_left_rate
from (select uid,
min(date(in_time)) dt
from tb_user_log
group by uid) a
left join (select uid , date(in_time) dt
from tb_user_log
union
select uid , date(out_time)
from tb_user_log) b
on a.uid = b.uid
and a.dt = date_sub(b.dt, INTERVAL 1 day)
where date_format(a.dt,'%Y-%m') = '2021-11'
group by a.dt
order by a.dt