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

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

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

 # SELECT
#     ROUND(COUNT(t2.device_id) / COUNT(t1.device_id), 4) AS avg_ret
# FROM 
#     (SELECT DISTINCT device_id,date 
#     FROM question_practice_detail) AS t1
# LEFT JOIN 
#     (SELECT DISTINCT device_id, date
#     FROM question_practice_detail) AS t2
# ON
#     t1.device_id = t2.device_id 
#     AND DATEDIFF(t2.date, t1.date) = 1;
select
    round(avg(if(datediff(new_date, date)=1, 1, 0)),4) as avg_ret
from
    (select
        device_id,
        date,
        lead(date,1) over(partition by device_id order by date) as new_date
    from
        (select
            distinct device_id,date
        from
            question_practice_detail
        )as q1) as q2

全部评论

相关推荐

不愿透露姓名的神秘牛友
昨天 17:04
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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