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

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

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链接也麻烦

全部评论
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 江苏
点个赞,这种方法也很不错
点赞 回复 分享
发布于 2022-02-06 23:55

相关推荐

就在我现在公司的隔壁每天经过都唏嘘不已(就是羡慕)什么时候可以到这里上班啊
柯基在debug:从大学毕业投简历到现在了,应届的时候我都面到终面了,现在工作四年了连简历初筛都过不了了
投递莉莉丝游戏等公司8个岗位 >
点赞 评论 收藏
分享
06-20 19:40
中原工学院 Java
网络存储:十几天不会让你拉人办卡就结束了吧?
点赞 评论 收藏
分享
评论
4
收藏
分享

创作者周榜

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