马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
x
样本数据导入:
- 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')
- ;在这里插入代码片
复制代码 idlogin_date12025-04-0112025-04-0212025-04-0312025-04-0512025-04-0622025-04-0122025-04-02- 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;
复制代码 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |