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

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

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

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

全部评论

相关推荐

02-12 01:30
已编辑
四川文理学院 Java
点赞 评论 收藏
分享
浅白lw:其实是牛马自己换马了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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