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

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

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

SELECT 
    AVG(IF(second_day IS NULL, 0, 1)) AS avg_ret
FROM (
    SELECT DISTINCT
        t1.device_id AS device_id,
        t1.date AS first_day,
        t2.date AS second_day
    FROM question_practice_detail t1
    LEFT JOIN question_practice_detail t2
        ON DATEDIFF(t2.date, t1.date) = 1 and t1.device_id = t2.device_id
) t

使用自连接的方法,以device_id以及date之差为1作为条件,做左连接。得到的结果中t2.date这一列为NULL的即为第二天没有再来刷题的用户。在主查询中使用IF语句配合这一列的查询结果,使用聚合函数求平均值。

全部评论

相关推荐

鼠鼠第一次实习,啥也不懂一直是自己一个人吃的饭,不会做工作老是被嫌弃,大人的世界是这样的吗?
我是星星我会发亮:好的mt有两种,一种愿意教你的,一种几乎什么活都不给你派让你很闲允许你做自己事情的
点赞 评论 收藏
分享
mama3925:建议专业技能里测试移到最上面,加粗。然后适当加入些自动化测试工具。第二个项目,第三条亮点最后错别字。然后佬如果对自己很自信的话,可以项目放前面,然后项目里可以编造点测试经历,写在写在项目亮点的前两行。最后可加个自我评价,放个博客或者仓库链接
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

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