题解 | #牛客每个人最近的登录日期(三)#
牛客每个人最近的登录日期(三)
http://www.nowcoder.com/practice/16d41af206cd4066a06a3a0aa585ad3d
解题思路:
- 用户总数
- 其中留存成功的人数
- 判断 留存成功的条件
- 当用户首次登录后,当天的后一天也再次登录,即判定留存成功
select round(count(if(to_days(a1.date) = to_days(a1.second_day),true,null))
/ count(distinct user_id),3)
from
(select l.user_id, l.date, s1.second_day
from login l
join
(
select user_id, date_add(min(date), interval 1 day) as second_day
from login
group by user_id
)s1
on l.user_id = s1.user_id
)a1
;