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

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

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

select 
	date,
	round(ifnull(count(if(datediff(A.date_1,A.date) = 1,1,null))/count(if(A.num = 1,1,null)),0),3)  
from(
    select 
        user_id,
        date,
        lead(date,1) over(partition by user_id order by date asc) as date_1,
        rank() over(partition by user_id order by date asc) as num
    from login
) as A group by date

理论上来说是最简单的一种方法了 不需要链接,mysql链接也麻烦

全部评论
点个赞,这种方法也很不错
点赞 回复 分享
发布于 2022-02-06 23:55
select date, round(ifnull(count(if(datediff(next_day,date)=1 and num=1,1,null))/count(if(num=1,1,null)),0),3) as p from ( select user_id,date, lead(date,1) over(partition by user_id order by date asc) as next_day, rank() over(partition by user_id order by date asc) as num from login )A group by A.date 计算时 需要增加一个条件用于判断新用户
点赞 回复 分享
发布于 2024-01-22 10:22 江苏

相关推荐

黑皮白袜臭脚体育生:简历统一按使用了什么技术实现了什么功能解决了什么问题或提升了什么性能指标来写会更好另外宣传下自己的开源仿b站微服务项目,GitHub已经410star,牛客上有完整文档教程,如果觉得有帮助的话可以点个小星星,蟹蟹
点赞 评论 收藏
分享
评论
4
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务