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

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

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

select 
    whole.date,
    if(part.rate is null,0.000,part.rate)
FROM
(
    select distinct date
    from login
)whole
LEFT JOIN
(
    SELECT total.totDate,round(num.nu/total.tot,3) rate
    FROM 
    (
    SELECT totDate,COUNT(*) tot
    FROM
        (
        SELECT user_id,min(date) totDate FROM login GROUP BY user_id
        )tmp
    GROUP BY totDate
    )total
    JOIN
    (
    select date_add(date,INTERVAL -1 DAY) dateNum,COUNT(*) nu
    FROM login
    WHERE (user_id,date) in (select user_id,date_add(min(date),INTERVAL 1 DAY) from login group by user_id )
    GROUP BY date
    )num
    ON total.totDate = num.dateNum
)part
ON whole.date = part.totDate;
全部评论

相关推荐

11-03 18:50
门头沟学院 Java
迷茫的大四🐶:问就是马上到,一周五天,6个月以上,全国可飞
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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