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

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

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

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);

1、找到每个用户第一天登录的日期和次日也登录的记录

where (user_id,date) in (
  select user_id,
  	DATE_ADD(min(date),INTERVAL 1 DAY) 
  from login 
  group by user_id);

2、所有用户的个数

select count(distinct user_id) 
from login

3、记录次留存率

round(count(distinct user_id)*1.0/(select count(distinct user_id) from login) 
	  ,3)

4、完整代码如下

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);

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

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