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

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

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

1.分析
要统计牛客新登录用户的次日成功的留存率,首先把公式列出来:
(第一天登录的新用户并且第二天也登录的用户)/(总用户),即为新登录用户的次日成功的留存率
总用户计算如下:

select count(distinct user_id) from login

查出每个用户第一天登陆的日子:

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

如果上面查找语句是1,2020-10-12;那么如果找到一个结果为1,2020-10-13的那么是不是就符合结果
了,于是可以如下写:

select user_id,DATE_ADD(min(date),INTERVAL 1 DAY) from login group by user_id
select 
round(count(distinct user_id) / (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);
全部评论

相关推荐

昨天 20:52
武汉大学 Java
点赞 评论 收藏
分享
用微笑面对困难:你出于礼貌叫了人一声大姐,大姐很欣慰,她真把你当老弟
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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