题解 | #次日留存率#

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

http://www.nowcoder.com/practice/16d41af206cd4066a06a3a0aa585ad3d

思路如下:
1.首先利用groupby 获取新用户首次登陆的时间
(select user_id,min(date) date from login
group by user_id) t2
2.利用链接把每个用户登陆的时间和初次登陆的时间连接起来
3.计算用户登陆的时间是否比首次登陆时间大1天,如果是则是次日留存,不是则次日流失
4.计算login表里所有的新用户数目做分子即可

select round(sum(case when l1.date-t2.date=1 then 1 else 0 end)/
count(distinct l1.user_id),3) p
from login l1
join
(select user_id,min(date) date from login
group by user_id) t2
on l1.user_id = t2.user_id

全部评论

相关推荐

牛马人的牛马人生:一开始看成了网吧
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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