select t.date,ifnull(round(count(distinct t2.user_id)/count(t1.user_id),3),0) as p from login t left join login t1 on t.id=t1.id and (t1.user_id,t1.date) in (select user_id,min(date) from login group by user_id) left join login t2 on t1.user_id=t2.user_id and t1.date=t2.date-1 group by t.date