题解 | #牛客每个人最近的登录日期(五)#

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

https://www.nowcoder.com/practice/ea0c56cd700344b590182aad03cc61b8

# 注意,这一题是新用户的次日留存率 并且是计算每一天
# 首先是考虑 新用户 (新用户可以通过第一次登陆的时间来判断)  然后是考虑 留存率
with t1 as (
    select
        distinct user_id,
        date,
        first_value(date) over (partition by user_id order by date asc rows between unbounded preceding and unbounded following) as first_date,
        lead(date, 1, 0) over (partition by user_id order by date asc) as next_date
    from   
        login
)
select 
    date,
    ifnull(round(sum(if(date=first_date and date_sub(next_date, interval 1 day)=date, 1, 0)) / sum(if(date=first_date, 1, 0)), 3), 0) as p 
    # 计算出来新用户的数量,然后计算新用户中次日登录的数量,进行相除,如果分母为0,则填充为0
from     
    t1
group by 
    date
order by 
    date asc;

全部评论

相关推荐

05-07 19:10
已编辑
中国科学技术大学 C++
silly01:现在先去 momenta,8-9月去鹅找日常实习,八股文算法背好了你这随便进。不过建议补充一下后端知识,MySQL、Redis看下八股,再补个6824,加点go后台的技术栈,9月随便进大厂。CPP后端只能来WXG
点赞 评论 收藏
分享
od现在都成这样了 就业市场真是crazy
牛客473059135号:没事,我有个朋友是985本硕学计算机的,被华为卡目标院校了简历挂,不过不是od虽然人家拿到一堆别的offer了就挺搞笑的属于是……
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务