首先弄清楚用户平均次日、三日和七日留存率的概念
用户平均次日留存率:第一天登录了,第二天也登录的用户
用户平均三日留存率:第一天登录了,第三天也登录的用户(不需要三天连续登录,只需要在第一天和第三天都登陆的用户就是三日留存用户)
用户平均七日留存率:第一天登录了,第七天也登录的用户(不需要七天连续登录,只需要在第一天和第七天都登陆的用户就是七日留存用户)
返回结果为:
avgret1 | avgret2 | avgret3 |
0.3000 | 0.2000 | 0.1000 |
select
count(q2.device_id) / count(q1.device_id) avgret1,
count(q3.device_id) / count(q1.device_id) avgret2,
count(q4.device_id) / count(q1.device_id) avgret3
from
(
select distinct
device_id,
date
from
question_practice_detail
) q1
left join
(
select distinct
device_id,
date
from
question_practice_detail
) q2 on q1.device_id = q2.device_id
and date_add(q1.date, interval 1 day) = q2.date
left join
(
select distinct
device_id,
date
from
question_practice_detail
) q3 on q1.device_id = q3.device_id
and date_add(q1.date, interval 2 day) = q3.date
left join
(
select distinct
device_id,
date
from
question_practice_detail
) q4 on q1.device_id = q4.device_id
and date_add(q1.date, interval 6 day) = q4.date