2.查询至少连续三天下单的用户(连续登录问题求解)

思路分析:

(1)求出每个user_id对应的create_date明细数据并去重

(2)开窗求user_id分组下按照create_date的排序号row_num

(3)使用create_date与row_num求差值作为日期days字段,如果连续登录那么差值相同,

(4)按照user_id与days分组计数求数量大于3的user_id就是连续登录用户

代码实现:

sql 复制代码
select 
user_id
from(
        select 
        user_id,
            date_sub(create_date, row_num) as days
        from (
                select 
                user_id,
                    create_date,
                    ROW_NUMBER() over(partition by user_id order by create_date) as row_num
                from (
                        select 
                        user_id,
                            create_date
                        from order_info
                        GROUP BY user_id,
                            create_date
                    ) t0
            ) t1
    ) t2
group by user_id,
    days
having count(*) >= 3;
相关推荐
freejackman14 小时前
【实战二】字段级血缘追踪:拆解 AST 迷局,精准穿透函数链与子查询
大数据·数据库·sql
骑着蜗牛撵大象3272 天前
MySQL 8.0 迁移后 SQL 变慢:执行计划里 3 类被忽略的成本差异
android·数据库·sql·mysql·优化器·执行计划
zhengfei6112 天前
Go-fastdfs /reload 未授权访问: 有效PoC
数据库·sql
大维2 天前
DBX 实测:从 SQLite 查询到 MiniMax-M3 自然语言生成 SQL
数据库·sql·sqlite
景煜拾年2 天前
InnoAI SQL 助手
运维·数据库·笔记·sql
Decay__3 天前
22_MySQL 运维自动化平台 —— 部署编排 + 监控 + 巡检 + 告警 + 工单闭环一体化
运维·数据库·sql·mysql·架构
Decay__3 天前
21_MySQL 优化案例集 —— 慢 SQL 优化、索引重构与参数调整收益对比
运维·数据库·sql·mysql·架构
挖掘狂人3 天前
MySQL 深分页优化:limit 100000, 10 慢在哪,怎么救
后端·sql·mysql
codigger3 天前
MySQL 深分页优化:limit 100000, 10 慢在哪,怎么救
数据库·sql·mysql·程序员
Francek Chen3 天前
【大数据处理与分析】数据仓库Hive:09 Hive 编程实践
大数据·数据仓库·hive·hadoop·sql