用户留存率计算

 

留存率作用

用户留存率体现用户粘性,提高用户留存率可创造更大的价值 ,通常观察次日留存(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;

 

posted @ 2022-05-27 18:17  TTT周清风  阅读(505)  评论(0编辑  收藏  举报