题解 | 牛客每个人最近的登录日期(五)
牛客每个人最近的登录日期(五)
https://www.nowcoder.com/practice/ea0c56cd700344b590182aad03cc61b8
select mdate date,
round(sum(case when date=date_add(mdate,interval 1 day) then 1 else 0 end)/count(distinct a.user_id),3) p
from
(select user_id,min(date) mdate
from login
group by user_id) a
join login b
on a.user_id=b.user_id
group by mdate
UNION ALL
-- 补充没有新用户的日期
SELECT
date,
0.000 as p
FROM login
WHERE date NOT IN (
SELECT MIN(date)
FROM login
GROUP BY user_id
)
GROUP BY date
ORDER BY date;
