题解 | #最长连续登录天数#

最长连续登录天数

https://www.nowcoder.com/practice/cb8bc687046e4d32ad38de62c48ad79b

SELECT DISTINCT user_id,max(consec_days) over(partition by user_id order by consec_days desc) max_consec_days
FROM
(SELECT user_id,count(chazhi) consec_days
FROM
(SELECT user_id,fdate,date_sub(fdate,interval row_number() over(partition by user_id order by fdate) day) chazhi
FROM tb_dau
where fdate between '2023-01-01' and '2023-01-31') tmp
group by user_id,chazhi order by consec_days desc) tmp2

1.SELECT user_id,fdate,date_sub(fdate,interval row_number() over(partition by user_id order by fdate) day) chazhi

FROM tb_dau

where fdate between '2023-01-01' and '2023-01-31'

查询出指定时间范围内,每一条记录的登陆时间和ROW_NUMBER的差值chazhi,chazhi相等的数据项就是连续登陆的数据项。

(如有必要需要先对数据进行去重)

2.SELECT user_id,count(chazhi) consec_days,按照chazhi对user_id进行分组,查看用户的每个chazhi下也就是连续登录的天数有几种。

3.SELECT DISTINCT user_id,max(consec_days) over(partition by user_id order by consec_days desc) max_consec_days找出每一位用户的最大chazhi,其结果就是所长连续登录时间。

全部评论

相关推荐

06-17 00:26
门头沟学院 Java
程序员小白条:建议换下项目,智能 AI 旅游推荐平台:https://github.com/luoye6/vue3_tourism_frontend 智能 AI 校园二手交易平台:https://github.com/luoye6/vue3_trade_frontend GPT 智能图书馆:https://github.com/luoye6/Vue_BookManageSystem 选项目要选自己能掌握的,然后最好能自己拓展的,分布式这种尽量别去写,不然你只能背八股文了,另外实习的话要多投,尤其是学历不利的情况下,多找几段实习,最好公司title大一点的
无实习如何秋招上岸
点赞 评论 收藏
分享
06-07 19:59
门头沟学院 C++
补药卡我啊😭:都快15年前的了还在11新特性
你的简历改到第几版了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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