9.11网易互娱数分笔试SQL

各位大佬,网易互娱第2道SQL题怎么写呀?求大佬们不吝赐教  实在想不出来了😂

用户id,登陆月份,登陆日期
问:查出每日的登陆用户数 ,以及后续3日的用户留存数

#笔试题目##网易互娱#
全部评论
select date,        sum(case when pass_days=1 then 1 else 0)/count(distinct user_id) as 后1日留存率,        sum(case when pass_days=2 then 1 else 0)/count(distinct user_id) as 后2日留存率,        sum(case when pass_days=3 then 1 else 0)/count(distinct user_id) as 后3日留存率 from(     select           t1.date,t1.user_id,         datediff(t2.date,t1.date) as pass_days     from          (         select date,user_id             from log         group by              date,user_id         ) t1         left join         (         select date,user_id             from log         group by              date,user_id         ) t2     on t1.user_id=t2.user_id     where t2.date>t1.date     ) t3 group by date
4 回复 分享
发布于 2021-08-20 00:01
主要是没有示例就很烦,我自己创了一个对了,但到它上面就是0😔
点赞 回复 分享
发布于 2020-09-12 09:23
同求答案
点赞 回复 分享
发布于 2020-09-12 09:43
同求
点赞 回复 分享
发布于 2020-09-12 10:04
可以 left join 之后三天的每一天,然后 coalesce(b.user_id, c.user_id, d,user_id) as is_stay,留存就count( distinct is_stay)
点赞 回复 分享
发布于 2020-09-12 10:16

相关推荐

评论
4
19
分享

创作者周榜

更多
牛客网
牛客企业服务