通过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;
相关推荐
润乾软件1 小时前
SQLazy:多表按 ID 合并为单行
sql·sqlazy
天天喝旺仔3 小时前
PostgreSQL 慢查询治理实战:读懂 EXPLAIN ANALYZE 执行计划,落地复合索引、部分索引与覆盖索引
sql·postgresql·性能优化·数据库开发
一个天蝎座 白勺 程序猿5 小时前
SQL Server数据库迁移实测:金仓KES V9R4C019让存量T-SQL“少量修改”
数据库·sql·kingbasees
磁场转动100万匹6 小时前
大数据入门:Hadoop 与 MapReduce 学习路线
大数据·hadoop·mapreduce
崖边看雾6 小时前
Hadoop —— HDFS 写数据流程
大数据·hadoop·hdfs
陈年老古董6 小时前
Python模拟MapReduce分治思想 | 从单文件统计到大文件拆分聚合 学习笔记
开发语言·hadoop·笔记·python·学习
shirsl7 小时前
数据开发每日面试题 Day 1
大数据·数据库·sql·big data
崖边看雾7 小时前
Hadoop —— HDFS 读流程
大数据·hadoop·hdfs
磁场转动100万匹7 小时前
HDFS 与 MapReduce 核心原理详解
hadoop·hdfs·mapreduce
2601_960356388 小时前
消费者洞察岗项目准备清单:SQL、问卷、用户分层与可视化
大数据·数据库·sql