窗口函数 题解 | #牛客每个人最近的登录日期(三)#

牛客每个人最近的登录日期(三)

https://www.nowcoder.com/practice/16d41af206cd4066a06a3a0aa585ad3d

# 计算次日留存率 
# 去重
with t1 as (
    select
        distinct user_id,
        date,
        row_number() over (partition by user_id order by date asc) as ranking
    from
        login
),
# 筛选出新登录用户的数据 (时间最早的前两个)
t2 as (
    select
        user_id,
        date
    from
        t1
    where
        ranking <= 2
),

# 加入次日的登录记录
t3 as (
    select
        user_id,
        date,
        lead(date ,1 ,0) over (partition by user_id order by date asc) as next_date
    from
        t2
)
# 计算留存率
select 
    round(sum(if(date_sub(next_date, interval 1 day) = date, 1, 0)) / count(distinct user_id), 3) as p
from    
    t3;


全部评论

相关推荐

牛客915519934号:差不多得了 ,真以为我们好忽悠呢?当初就是听了你们的话没有赶上风口入行Java,现在还想再忽悠我呢?这明显就是一个新风口,国家大力发展制造业,以后这个圈子的钱只会越来越多,不管是入门还是大佬,只要进来少说有你一口饭吃,一个个自私自利自己上了车就劝退其他人,钱都让你赚得了呗。就这点东西,入门很容易的,学个pcb,单片机就可以去找工作了,少说一万五起,以后只会越来越高,以后想进阶就去FPGA,linux,给的钱吊打互联网,再说说你们一直说数电模电难?实际呢也不过一个月就能拿下的事情,你不需要学的多深,只需要入门就足够了,就按我说的学出来少说两万起,最好报个培训班,入门更快,兄弟们跟着我冲就完事了,趁着这个机会,狠狠赚他一笔。
点赞 评论 收藏
分享
10-25 12:05
已编辑
湖南科技大学 Java
若梦难了:我有你这简历,已经大厂乱杀了
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务