查询连续登陆3天的用户id和登陆天数

194 字
1 分钟
查询连续登陆3天的用户id和登陆天数
-- 查询连续登陆3天的用户id和登陆天数
-- step1:用户登录日期去重
select distinct
user_id,
date(visit_time) as dt
from cm.tb_user_logs;
-- step2:用row_number()计数
select *,
row_number() over (PARTITION by user_id order by dt) as xrank
from (select distinct
user_id,
date(visit_time) as dt
from cm.tb_user_logs) a;
-- step3: 日期减去计数值得到差值delta
select *, date_sub(dt, INTERVAL xrank DAY) as delta
from (select *,
row_number() over (PARTITION by user_id order by dt) as xrank
from (select distinct
user_id,
date(visit_time) as dt
from cm.tb_user_logs) a
) b;
-- step4:根据id和结果分组并计算总和,大于等于3的即为连续登录3天的用户
select user_id, min(dt) as start_date, count(*) as days
from (select *, date_sub(dt, INTERVAL xrank DAY) as delta
from (select *,
row_number() over (PARTITION by user_id order by dt) as xrank
from (select distinct
user_id,
date(visit_time) as dt
from cm.tb_user_logs) a
) b
) c
GROUP BY user_id, delta
having count(*) >= 3;

支持与分享

如果这篇文章对你有帮助,欢迎分享给更多人或打赏支持!

打赏
查询连续登陆3天的用户id和登陆天数
https://fanrich.eu.org/posts/程技/sql/online_users_with_3_consecutive_days/
作者
richfan
发布于
2023-08-01
许可协议
CC BY-NC-SA 4.0

评论区

Profile Image of the Author
richfan
Hello, I'm richfan.
公告
欢迎来到我的博客!这是一则示例公告。
音乐
封面

音乐

暂未播放

0:000:00
暂无歌词
分类
标签
站点统计
文章
779
分类
8
标签
138
总字数
3,267,679
运行时长
0
最后活动
0 天前
站点信息
构建平台
Cloudflare Pages
博客版本
Firefly v6.13.5
文章许可
CC BY-NC-SA 4.0

文章目录