通过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;
相关推荐
qq_3344668611 小时前
删除SSMS的历史登录记录
数据库·sql
小宋102115 小时前
SQL + RAG 混合问答实战:结构化指标与文档证据如何统一路由
java·jvm·人工智能·sql
不恋水的雨15 小时前
gbase中union all导致末尾多出空格的坑
数据库·sql·mysql
曹牧17 小时前
PL/SQL Developer:导出建表语句
数据库·sql
Q264336502319 小时前
【有源码】基于XGBoost的安卓应用市场数据分析与评分预测系统-面向应用市场的安卓App评分回归预测方法研究
大数据·hadoop·数据挖掘·数据分析·回归·spark·毕业设计
IT毕设梦工厂19 小时前
计算机毕业设计选题推荐:基于大数据的培训机构信息分析与可视化|毕业设计选题|计算机毕设|选题推荐|毕设指导|项目定制|源码|高质量项目
大数据·hadoop·mysql·数据挖掘·数据分析·spark·课程设计
润乾软件1 天前
LLM 规划,编译器生成:以工作流为契约的确定性 SQL 生成器
人工智能·sql·sqlazy
oradh1 天前
Oracle固定执行计划的方法----SQL Profie(二)
数据库·sql·oracle
钝挫力PROGRAMER1 天前
开发踩坑记:MyBatis selectKey、空 SQL
数据库·sql·mybatis
Long long ago.1 天前
vastbase数据库运行sql宕机重启解决
数据库·sql