题解 | 最长连续登录天数

最长连续登录天数

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

-- 在现有的tb_dau基础上通过窗口函数新增一列
-- 再加入一个辅助列 Column2 = f_date - Column1 用DATE_SUB函数

WITH T1 AS (SELECT fdate, user_id, 
ROW_NUMBER() OVER (PARTITION BY user_id ORDER BY fdate) AS Column1,
DATE_SUB(fdate, INTERVAL ROW_NUMBER() OVER (PARTITION BY user_id ORDER BY fdate) DAY) AS Column2
FROM tb_dau),

T2 AS (SELECT user_id, COUNT(*) AS consec_days
FROM T1 
GROUP BY user_id, Column2)

SELECT user_id, MAX(consec_days)  AS max_consec_days
FROM T2
GROUP BY user_id



全部评论

相关推荐

不愿透露姓名的神秘牛友
03-09 19:13
求你们别卷了的大学生...:你不骂他,我就要骂你了
今天你投了哪些公司?
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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