通过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;
相关推荐
小白说大模型15 小时前
LLM集成数据库的幻觉治理:当AI给出的SQL建议是错的
数据库·人工智能·sql·oracle·重构·开源
Csvn17 小时前
📊 SQL 入门 Day 19:事务与隔离级别
后端·sql
今天AI了吗18 小时前
深度学习基础-Harness:从评估框架到工程落地
数据库·人工智能·sql·深度学习·机器学习
码农颜19 小时前
6.1.2 常⽤⽅法的问题
数据库·sql·oracle
TJHHH.20 小时前
SQL注入学习总结
数据库·笔记·sql·学习·注入
云水一下1 天前
零基础玩转bWAPP靶场(六十三):Drupal SQL Injection (Drupageddon)
sql·web安全·bwapp
抓蛙师1 天前
多租户 tenant_id SQL 注入漏洞分析与应急响应报告
数据库·sql
何以解忧,唯有..2 天前
数据库索引失效的常见情况与优化策略
数据库·sql·oracle
Htr_2 天前
Outcome 核心概念与实战应用指南
大数据·hadoop·apache