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

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

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

自己想出来的一种更简便更好理解的解法。 第一步我们把同一天的同一用户去重。 第二步我们做有条件的sum求和, 从这个新的表里拿出每一天的数据,看它之后的一天是否也在原表中有数据, 有则代表他次日留存了,记1,没有则记0。 第三步我们把留存数除以访问总数count(*)即可, 这里没有除直接用了一个avg是一样的结果

select avg(if(date_add(date, interval 1 day) in 
(select date from question_practice_detail t2 where t1.device_id = t2.device_id),1,0)) as avg_ret
from (select distinct device_id, date from question_practice_detail) t1
全部评论

相关推荐

评论
2
收藏
分享

创作者周榜

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