题解 | #牛客每个人最近的登录日期(五)#
牛客每个人最近的登录日期(五)
https://www.nowcoder.com/practice/ea0c56cd700344b590182aad03cc61b8
select a.date, ifnull(round(count(l.user_id)/count(b.user_id),3),0.0) from (select distinct date from login ) a left join (select user_id,min(date) date from login group by user_id) b on a.date=b.date left join login l on date_add(b.date,interval 1 day)=l.date and b.user_id=l.user_id group by a.date order by a.date
- 找到所有日期表a
- 找到所有用户以及第一天登陆日期
- 连接a b,以a为连接基准
- 继续连接 login,找到次日留存的情况
- 使用ifnull控制输出的概率
查看7道真题和解析