题解 | 最长连续登录天数

最长连续登录天数

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



全部评论

相关推荐

04-03 22:41
兰州大学 C++
老六f:有时候是HR发错了,我之前投的百度的后端开发,他给我发的算法工程师,但是确实面的就是百度开发
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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