select date,ifnull(round(sum(case when (user_id, date) in (select user_id,date_add(date, interval -1 day)from login) 
and (user_id, date) in (select user_id, min(date) from login
group by user_id) then 1 else 0 end)
/sum(case when (user_id, date) in (select user_id, min(date) from login group by user_id) then 1 else 0 end),3),0) p
from login
group by date
order by date