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

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

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

select
    count(q2.device_id)/count(q1.device_id) as avg_ret
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 q2.date = date_add(q1.date, interval 1 day)

好难好难,次日留存率=①相同id且②第二天答题的用户数/第一天答题用户数

首先,选出两个distinct表,用于区分第一天和第二天;

其次,自连接,条件为相同的①device_id和②q2比q1多一天;

最后,在主查询中运用聚合函数count计算平均值。

全部评论

相关推荐

在看牛客的社畜很积极:身高体重那一行信息去掉,学校那一行的信息放上面,找半天都没找到你是哪个学校什么专业的
点赞 评论 收藏
分享
08-22 11:25
已编辑
南京财经大学 Java
程序员小白条:优先背八股文,JUC,JVM这些基础概念一定要会,spring底层先放放,408也是八股优先,不考研,不用深入去学,没性价比,多搞搞算法,起码两个题单熟练刷,起码300-400题的精刷
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务