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

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

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

select COUNT(DISTINCT b.device_id,b.date)/COUNT(DISTINCT a.device_id,a.date) as avg_ret
from question_practice_detail a
left join question_practice_detail b 
on a.device_id = b.device_id
and datediff(a.date, b.date)=-1

1.首先明确计算逻辑 次日留存率=第一天答题的前提下第二天继续答题的人数/第一天答题的总数

2.计算X日留存算相对比较难得sql练习题目,难在重构表连接,这里要想到表自己和表自己左连接,上图我展示了联接之后查询相关字段的表的内容 这样会好理解一些,这道题目的答案是第一段代码。另外本题还考察了对于mysql 函数的日期函数这里做了总结如

全部评论

相关推荐

头顶尖尖的程序员:我也是面了三四次才放平心态的。准备好自我介绍,不一定要背熟,可以记事本写下来读。全程控制语速,所有问题都先思考几秒,不要急着答,不要打断面试官说话。
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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