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

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

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

次日留存率=在第一天登录后第二天还登录的人数/第一天登录的人数

第一种

select round(
    count(distinct l1.user_id)/( select count(distinct user_id)  from login)
    , 3)
from login l1
inner join (
    select user_id,  min(date) as date -- 找出第一次时间
    from login  
    group by user_id
) l2 on l1.user_id=l2.user_id and l1.date=DATE_ADD(l2.date, INTERVAL 1 DAY) -- 次日时间

第二种:

select round(
    count(distinct l1.user_id) / t.cnt_total,  3
)
from login l1
inner join login l2 on l1.user_id=l2.user_id and date(l2.date)-date(l1.date)=1  -- 间隔一天的日期
inner join (
    select count(distinct user_id) as cnt_total  -- 找到首次访问的人数
    from login 
) as t
全部评论

相关推荐

2025-12-18 09:22
门头沟学院 Java
程序员花海_:实习和校招简历正确格式应该是教育背景+实习+项目经历+个人评价 其中项目经历注意要体现业务 实习经历里面的业务更是要自圆其说 简历模板尽可能保持干净整洁 不要太花哨的
实习简历求拷打
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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