题解 | 最长连续登录天数

select user_id
,max(连续登录天数) as max_consec_days
from 
(
    select 
        distinct user_id,
        max(日期排序)-min(日期排序)+1 as 连续登录天数
    from (
        select distinct user_id, fdate,
        row_number() over(partition by user_id order by fdate) as 日期排序,
        date_sub(fdate,interval row_number() over (partition by user_id order by fdate)day) as 初始日期
        from tb_dau
    where year(fdate)=2023 and month(fdate)=1
    ) as uniq_id_date
GROUP BY user_id,初始日期
) as id_last_next_date
group by user_id

全部评论
数据大一点这个sql得有多卡
点赞 回复 分享
发布于 2025-01-03 18:45 贵州

相关推荐

评论
点赞
收藏
分享

创作者周榜

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