题解 | #牛客每个人最近的登录日期(三)#

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

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

新用户的次日留存率=(第一天登录的新用户并且第二天也登录)/(总用户)

1、先求总用户数

#select count(distinct user_id) from login

2、找到每个用户第一天登录的日子

#select user_id, min(date) from login group by user_id

3、找到第一天登录的新用户且第二天也登录了

#select user_id, DATE_ADD(min(date), interval 1 day) from login group by user_id

4、最后计算第二天也登录的新用户数量,除以总用户数就可得到次日留存率。

select round(count(distinct user_id) * 1.0 
        / (select count(distinct user_id) from login), 3)
from login
where (user_id, date) 
in (select user_id, DATE_ADD(min(date), interval 1 day) 
    from login group by user_id);
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

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