1. 程式人生 > 其它 >使用者留存率計算

使用者留存率計算

留存率作用

使用者留存率體現使用者粘性,提高使用者留存率可創造更大的價值 ,通常觀察次日留存(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;