题解 | #计算用户的平均次日留存率#

计算用户的平均次日留存率

https://www.nowcoder.com/practice/126083961ae0415fbde061d7ebbde453

select count(q2.device_id) / count(q1.device_id)
from (select distinct device_id,date from  question_practice_detail) as q1
left join (select distinct device_id,date from  question_practice_detail) as q2 on
q1.device_id=q2.device_id and date_add(q1.date,interval 1 day)=q2.date

1,主要是次日留存率的概念问题,留存率是指客户在第一天登录的基础上第二天继续登录使用,所以第一天用户登录的数量(分母)不应该是distinct(用户id)的数量,应该是count(用户+登录时间)的数量,举例:用户id=1,在1号和15号登录使用,第二天的留存应该是以1号和15号的数量作为分母,然后看看是否有2号和16号登录的情况作为分子求用户次日留存率。

2,用第一天登录的情况做左连接表,用(用户id)和(第二天登录时间)做限制条件与第一天登录情况连接,date_add(第一天邓登录日期,interval 1 day)=第二天登录时间,,,,

全部评论

相关推荐

程序员小假:人才
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务