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

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

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

select round(count(distinct if(diff_num=1,user_id,null))/count(distinct user_id),3) as p
from (
    select user_id,
           date,
          datediff(lead(date,1)over(partition by user_id order by date),date) as diff_num
    from login
)a

思路:当天登陆且第二天连续登陆的用户数/总用户数

总用户数计算方式:这个比较直接:count(distinct user_id)

当天登陆且第二天连续登陆的用户数:这个可以利用窗口函数lead,计算当前日期的下一个日期,并利用datediff函数计算当前日期和其下一个登录日期的差值,如果是1则说明是连续登陆,然后count(distinct diff_date=1的用户数就ok了)

最后就用:当天登陆且第二天连续登陆的用户数/总用户数得到结果数据

全部评论

相关推荐

rbjjj:太杂了吧,同学,项目似乎都没深度,都是api调度耶,分层架构思想没有体现出来了,前端没有前端优化前端工程化体现,后端微服务以及分层架构没体现以及数据安全也没体现,核心再改改,注重于计算机网络,工程化,底层原理吧
点赞 评论 收藏
分享
SaviorSu:直接说下学期可以请假,一般情况学校允许我26届,大三就直接去实习了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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