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

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

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

select
    t1.dt,
    if (
        count(distinct t2.user_id) = 0,
        0.000,
        round(
            count(
                case
                    when datediff (t3.date, t1.dt) = 1 then t3.user_id
                end
            ) / count(distinct t2.user_id),
            3
        )
    ) as p
from
    (
        select
            date as dt
        from
            login
        group by
            date
    ) t1
    left join (
        select
            user_id,
            min(date) as min_dt
        from
            login
        group by
            user_id
    ) t2 on t1.dt = t2.min_dt
    left join login t3 on t2.user_id = t3.user_id
group by
    t1.dt

全部评论

相关推荐

用微笑面对困难:实习我觉得去字节好一点,因为鹅的转正很困难,后面可以去鹅干长期
找实习记录
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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