查询连续登陆3天的用户id和登陆天数
194 字
1 分钟
查询连续登陆3天的用户id和登陆天数
-- 查询连续登陆3天的用户id和登陆天数-- step1:用户登录日期去重select distinct user_id, date(visit_time) as dtfrom cm.tb_user_logs;
-- step2:用row_number()计数select *, row_number() over (PARTITION by user_id order by dt) as xrankfrom (select distinct user_id, date(visit_time) as dt from cm.tb_user_logs) a;
-- step3: 日期减去计数值得到差值deltaselect *, date_sub(dt, INTERVAL xrank DAY) as deltafrom (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 daysfrom (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 ) cGROUP BY user_id, deltahaving count(*) >= 3;支持与分享
如果这篇文章对你有帮助,欢迎分享给更多人或打赏支持!
相关文章智能推荐
1
给定用户登录表,求表中每一天的3天留存率
程技2023-08-01
2
SQL每日一题F1028,关联子查询
程技2023-08-01
3
求占据前90%销售额的商品类型
程技2023-08-01
4
MySQL常用30种SQL查询语句优化方法
程技2023-08-01
5
MySQL常用函数
程技2023-09-19
随机文章随机推荐
樊笼










