select round(count(login.user_id)*1.0/count(b.user_id),3) as p
from
(select *, date(a.date,'+1 day') as next
from
(select * ,rank() over (PARTITION by user_id order by date) as number
from login) as a
where a.number==1) as b left join login on b.user_id==login.user_id and b.next==login.date