题解 | 最长连续登录天数

最长连续登录天数

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

窗口函数,思路较为简单

with date_rows as(
select *,
row_number() over(partition by user_id order by fdate) d_row
from tb_dau order by fdate)

select a.user_id, max(b.d_row - a.d_row) + 1 as max_consec_days
# select *
from date_rows a 
join date_rows b on a.user_id = b.user_id and b.fdate > a.fdate and b.d_row > a.d_row and DATEDIFF(b.fdate, a.fdate) = b.d_row - a.d_row
group by a.user_id
order by a.user_id
全部评论

相关推荐

评论
1
收藏
分享

创作者周榜

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