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

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

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 计算时 需要增加一个条件用于判断新用户
点赞
送花
回复
分享
发布于 01-22 10:22 江苏
滴滴
校招火热招聘中
官网直投

相关推荐

3 收藏 评论
分享
牛客网
牛客企业服务