失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > Mysql-统计用户的次日留存率

Mysql-统计用户的次日留存率

时间:2021-11-27 07:04:23

相关推荐

Mysql-统计用户的次日留存率

刷牛客网上遇到的一题,看了讨论区的内容,现在把自己的理解记录下来。

题目要求:

解题思路:

1.一个用户可能一天内存在多次答题记录,以device_id,date去重

select distinct q.device_id,q.datefrom question_practice_detail q

2.单个用户的次日留存率

假设某用户11月1日答完题后,11月2日继续登录答题,11月3日也继续登录答题。

那一共可以查到3条该用户的去重记录,其中11月2日、11月3日均是次日留存记录,

这里我们的次日留存率=2/3。

3.全量用户次日留存率

我们需要分析全部用户的次日留存率,将步骤1中的所有去重记录都假设为第一天来刷题,用left join将第二天的拼接起来,如果拼不到第二天,则该条记录不满足次日留存的条件。

最终的查询语句如下:

selectcount(q2.device_id)/count(q1.device_id)#count函数对null值不计数,拼不到次日答题的记录会拼一个null值from (SELECTdistinct p.device_id,p.datefrom question_practice_detail p) as q1left join (SELECTdistinct p.device_id,p.datefrom question_practice_detail p) as q2on q1.device_id=q2.device_idand q2.date=date_add(q1.date,interval 1 day)

如果觉得《Mysql-统计用户的次日留存率》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。