select visit_date, count(id) as dau, count(q1) / count(id) as next_day_per from ( select t1.id,t1.visit_date,t2.visit_date as q1 from user_visit_log as t1 left join user_visit_log as t2 on t1.id = t2.id and datediff(t2.visit_date,t1.visit_date) = 1 ) as temp group by visit_date;