解法:
易错点:分母为0

#每天新登录用户数
select a.date,if(a.new=0,0.000,round(b.remain/a.new,3)) from  
(select l1.date,count(distinct if(l2.date is null,l1.user_id,null)) as new
from login l1
left join login l2
on  l1.user_id=l2.user_id and l1.date>l2.date
group by l1.date) a 
inner join 
#新用户次日登录用户数
(select l1.date,count(distinct if(l2.date is null and l3.date is not null,l1.user_id,null)) as remain from login l1
left join login l2 on l1.user_id=l2.user_id and l1.date>l2.date
left join login l3 on l1.user_id=l3.user_id and DATE_ADD(l1.date,interval 1 day)=l3.date
group by l1.date)b 
on a.date=b.date