通过HIVE SQL获取每个用户的最大连续登录时常

样本数据导入:

复制代码
drop table if exists user_login;
create table user_login
( `user_id` bigint 
,login_date string
)
;


insert into table user_login 
values 
(1,'2025-04-01')
,(1,'2025-04-02')
,(1,'2025-04-03')
,(1,'2025-04-05')
,(1,'2025-04-06')
,(2,'2025-04-01')
,(2,'2025-04-02')
;在这里插入代码片
id login_date
1 2025-04-01
1 2025-04-02
1 2025-04-03
1 2025-04-05
1 2025-04-06
2 2025-04-01
2 2025-04-02
sql 复制代码
WITH ranked_logins AS (
    SELECT 
        user_id,
        login_date,
        ROW_NUMBER() OVER (PARTITION BY user_id ORDER BY login_date) AS rn
    FROM (
        SELECT DISTINCT user_id, login_date
        FROM user_login
    ) AS distinct_logins
),
grouped_logins AS (
    SELECT
        user_id,
        login_date,
        rn,
        DATE_SUB(login_date,rn) AS grp
    FROM ranked_logins
),
streaks AS (
    SELECT
        user_id,
        grp,
        COUNT(*) AS streak_length
    FROM grouped_logins
    GROUP BY user_id, grp
)
SELECT
    user_id,
    MAX(streak_length) AS max_streak
FROM streaks
GROUP BY user_id;
相关推荐
灯澜忆梦9 小时前
【MySQL2】| DML数据操作语言
数据库·sql
斯文的八宝粥10 小时前
WPF企业内训全程实录(下)
大数据·hadoop·wpf
Zhu75811 小时前
使用腾讯CNB构建Hadoop定制容器镜像
大数据·hadoop·分布式
麦聪聊数据12 小时前
业务自助取数(下):安全可控前提下,实现取数效率百倍提升
数据库·sql
TTBIGDATA12 小时前
【Ambari Plus】13.Spark 安装
大数据·hadoop·分布式·spark·ambari·sqoop·ambari plus
ShiXZ21313 小时前
指令集-SQL 常用指令速查手册
数据库·sql·mysql·oracle
sunxunyong14 小时前
Hadoop租户创建
大数据·hadoop·分布式
AllData公司负责人15 小时前
数据集成管理|AIIData数据中台实现MySQL、Hive、Oracle一键接入Doris
大数据·数据库·人工智能·hive·mysql·oracle·数据分析
Databend15 小时前
小 Bitmap,大优化:Databend 如何加速大规模集合聚合
大数据·数据库·sql
泰克教育官方账号17 小时前
泰涨知识 | Hive集群环境部署
数据仓库·hive·hadoop