用户留存率计算
留存率作用
用户留存率体现用户粘性,提高用户留存率可创造更大的价值 ,通常观察次日留存(1日留存)3日留存、7日留存、30日留存,根据不同的业务场景还有更久的周期。
用户留存在互联网行业中是重点核心指标,每一位数据分析小伙伴都要掌握并经常分析。
mysql计算留存率的写法
假设我们计算用户注册后,的次日留存、三日留存、七日留存、三十日留存,数据表login_info有两个字段user_id(用户ID),login_date(登录日期)
1 select *, 2 concat(round(100*次日留存用户/日新增用户数,2),'%') 次日留存率, 3 concat(round(100*三日留存用户/日新增用户数,2),'%') 三日留存率, 4 concat(round(100*七日留存用户/日新增用户数,2),'%') 七日留存率, 5 concat(round(100*三十日留存用户/日新增用户数,2),'%') 三十日留存率 6 from 7 ( 8 select 9 c.log_day 日期, 10 count(distinct c.u_id) 日新增用户数, 11 count(distinct d.u_id) 次日留存用户, 12 count(distinct e.u_id) 三日留存用户, 13 count(distinct f.u_id) 七日留存用户, 14 count(distinct g.u_id) 三十日留存用户 15 from 16 ( 17 18 select a.* 19 from login_info a 20 where a.user_id not in (select distinct user_id from login_info where login_date < '2021-06-01')21 22 ) c 23 left join login_info d on c.u_id = d.u_id and DATEDIFF(d.login_date,c.login_date) = 1 24 left join login_info e on c.u_id = e.u_id and DATEDIFF(e.login_date,c.login_date) = 3 25 left join login_info f on c.u_id = f.u_id and DATEDIFF(f.login_date,c.login_date) = 7 26 left join login_info g on c.u_id = g.u_id and DATEDIFF(g.login_date,c.login_date) = 30 27 group by c.login_date
order by c.login_date 28 ) p;