题解 | #计算用户的平均次日留存率#
计算用户的平均次日留存率
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 函数的日期函数这里做了总结如