题解 | #牛客每个人最近的登录日期(五)#
牛客每个人最近的登录日期(五)
http://www.nowcoder.com/practice/ea0c56cd700344b590182aad03cc61b8
with t_new_user as(
select user_id,min(date) as date
from login
group by user_id
),t_keep_user as (
select user_id,l.date
from login l
left join t_new_user t using(user_id)
where t.date = date_sub(l.date,interval 1 day)
)
select l.date,ifnull(round(count(k.user_id)/count(n.user_id),3),0) as p
from t_new_user n
left join t_keep_user k using(user_id)
right join login l on n.date = l.date
group by l.date