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

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

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

思路:

第一天来过,第二天还回来的平均概率

动作连续性,同一个人,第一天,第二天,

1、考虑同一个表两表左关联:device_id 相同 & date差一天

2、表中带着题号,有重复性,需要去重

3、时间函数 date_add(date,interval number type) 或 DATEDIFF(TB.date,TA.date)=1 两个日期相差的天数

4、概率:第二天来过的人数/第一天来过的人数,这里不需要在对人员去重,因为一个人如果连续来,概率是增加的

SELECT  COUNT(tb.device_id)/COUNT(ta.device_id) 
from  (SELECT  DISTINCT ta.device_id,ta.date 
        from question_practice_detail ta ) ta 
left join (SELECT  DISTINCT ta.device_id,ta.date 
        from question_practice_detail ta ) tb 
on ta.device_id=tb.device_id and tb.DATE=DATE_ADD(ta.DATE,INTERVAL 1 DAY)

全部评论

相关推荐

04-28 19:31
门头沟学院 Java
真烦好烦真烦:可恶的二手车贩子,居然对我们门头沟学院的人这么没礼貌
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务