select round(
(
select count(*)
from login
where (user_id,date)
in(
select user_id,date_add(min(date),interval 1 day)
from login group by user_id order by user_id asc
)
) / count(distinct user_id),3)
from login
按user_id分组,然后选出最小的日期+1的user_id和日期,然后依次为“留存条件”,用user_id和日期关联,查出留存用户,并统计出“留存数量”,再用留存数量除以用户总人数,就得到了留存率。

京公网安备 11010502036488号