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;
相关推荐
YHHLAI14 小时前
SQL 完全指南:从入门到精通
数据库·sql
CDN36015 小时前
爬虫把价格库扒光、SQL注入打穿数据库?360CDN WAF规则引擎深度定制,把防护精度拉到逐字段级
数据库·爬虫·sql
天涯柳絮18 小时前
SQL注入
数据库·sql·网络安全
Ysx2 天前
把 SQL 从 2700 次降到 4 次:一个 Java 后端对存量报表的 N+1 手术
sql
2301_800074212 天前
mysql DQL
数据库·sql·mysql
Sagittarius_A*2 天前
【好靶场】SQL注入-时间盲注
数据库·sql
崖边看雾2 天前
MySQL——SQL 经典练习题:学生选课成绩查询(附详细注释)
大数据·数据库·sql·mysql
2601_960356382 天前
库存分析岗位秋招准备:SQL、Excel、WMS与供应链指标
数据库·sql·excel
山峰哥2 天前
造价算量系统SQL优化,慢查询从9秒压到35毫秒‌
大数据·数据库·sql·编辑器·深度优先
StarRocks_labs2 天前
StarRocks 如何查询 Paimon 半结构化数据?Variant、Shredding 与 SQL 实践
starrocks·sql·paimon·variant·shredding