题解 | #计算用户的平均次日留存率#
计算用户的平均次日留存率
https://www.nowcoder.com/practice/126083961ae0415fbde061d7ebbde453
代码不想多说,开窗或者关联做法都可以,开窗是用流水信息跑出一个数据分析结果,关联是在有用户模型表的基础上优先推荐使用。
select sum(case when PreDate=date_sub(`date`,INTERVAL 1 DAY) then 1 else 0 end)/count(*) as avg_ret from ( select device_id, `date`, lag(`date`,1) over(partition by device_id order by `date` asc) as PreDate from ( select device_id, `date` from question_practice_detail group by device_id, `date` ) t1 ) tab