SQL269热题难!

查询每个日期新用户的次日留存率,1个表是新用户第一次登录min(date),第2个表是同一个用户在第二天登录

代码如下:

select l.date, ifnull(round(count(distinct l2.user_id)/count(l1.user_id),3),0)p from login l left join login l1 on l1.id = l.id

and (l1.user_id, l1.date) in

(

    select user_id, min(date)over(partition by user_id) from login

)

left join login l2 on l1.user_id = l2.user_id and l1.date = l2.date - 1

group by l.date

order by l.date ASC

#笔试#
全部评论

相关推荐

投递拓竹科技等公司10个岗位
点赞 评论 收藏
分享
认真搞学习:这么良心的老板真少见
点赞 评论 收藏
分享
07-22 11:12
门头沟学院 Java
不是,我就随手投的怎么还真发面试啊
皮格吉:大厂特别快的——来自已经被共享中
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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