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

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

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

13号登录的人里是12号的新用户的人数/12号的新用户数=新用户次日留存率
1,先求出每个用户的注册日期(min),left join on 匹配。
2.登陆日期和注册日期相减,统计时间间隔等于0的用户数就为当日的新用户数 sum(时间间隔=0)
3,时间间隔等于1的用户数就为前一天的新增用户的次日留存数,要把这个数据往上移动一格,要用开窗lead函数。

select date,
ifnull(round(lead(sum(datediff(date,注册日期)=1),1) over(order by date)/sum(datediff(date,注册日期)=0),3),0) as p
from  login as t1  left join 
(select user_id,min(date) as 注册日期 from login  group by user_id) as t2
on t1.user_id=t2.user_id 
 group by date order by date;

全部评论

相关推荐

2025-12-15 11:27
门头沟学院 Java
哇哇的菜鸡oc:所有人不要理会,就好了,后面他就知道怎么回事了,只能说有的时候市场都是被宰的人搞坏的
点赞 评论 收藏
分享
2025-12-19 15:04
门头沟学院 Java
小肥罗:hr爱上你了,你负责吗哈哈
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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