题解 | #计算用户的平均次日留存率#
计算用户的平均次日留存率
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
