题解 | #计算用户的平均次日留存率#
计算用户的平均次日留存率
https://www.nowcoder.com/practice/126083961ae0415fbde061d7ebbde453
with t1 as ( select date,device_id from question_practice_detail group by date,device_id ) #select round(sum(t.ct)/(count(t.dt)),4) #from ( select #q.date dt, count(q2.device_id)/count(q.device_id) ct from t1 q left join t1 q2 on q.date= q2.date-1 and q.device_id = q2.device_id
步骤:
1、先按照日期和人员分组,取出人员和日期(避免重复计数)
2、得到今天做了题目的人数(今天总人数),和明天也做了题目的人数(昨天和今天都做了题的人数),把明天做了题目的人数除以今天做了题目的人数,得到概率
个人认为应该把注释的内容添加上,也就是:计算出每天今天做了题目,明天也做了的人数占总人数的比例(按天分组),然后把每天的概率相加,除以计算的天数-1(因为计算的最后一天没有第二天的数据)
