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

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

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

WITH a AS (
  SELECT 
    distinct device_id, date
  FROM question_practice_detail
),
c as (
select *,RANK() OVER(PARTITION BY device_id ORDER BY date) AS rk,
    DATE_ADD(date, INTERVAL 1 DAY) AS d_plus_1
    from a
),
b AS (
  SELECT 
    *, 
    LEAD(date, 1) OVER(PARTITION BY device_id ORDER BY date) AS act_d
  FROM c
)
SELECT 
  COUNT(CASE WHEN act_d = d_plus_1 THEN 1 ELSE NULL END) / COUNT(1) AS avg_ret
FROM b;

全部评论

相关推荐

不愿透露姓名的神秘牛友
2025-11-27 10:04
点赞 评论 收藏
分享
2025-12-01 15:04
吉首大学 后端工程师
冲鸭2024:亚信不去也罢
投递亚信科技(中国)有限公司等公司8个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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