题解 | #日活与每日次日留存率#

日活与每日次日留存率

https://www.nowcoder.com/practice/18b168ada98d4bdb9108444443cea7d3

select
    t1.visit_date,
    t1.dau,
    round(
        if (t2.next_day_per is not null, t2.next_day_per, 0),
        4
    ) next_day_per
from
    (
        select
            visit_date,
            (count(*)) dau
        from
            user_visit_log
        group by
            visit_date
    ) t1
    left join (
        select
            u1.visit_date visit_date,
            (
                count(*) / (
                    select
                        count(*)
                    from
                        user_visit_log
                    where
                        visit_date = u1.visit_date
                )
            ) next_day_per
        from
            user_visit_log u1
            join user_visit_log u2 on u1.id = u2.id
            and datediff (u2.visit_date, u1.visit_date) = 1
        group by
            u1.visit_date
    ) t2 on t1.visit_date = t2.visit_date

全部评论

相关推荐

八极星:有什么不能问的,(/_\),这又不是多珍贵的机会,你有什么可失去的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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