1. 题目需求
通过商品信息表(sku_info)订单信息表(order_info)订单明细表(order_detail)分析如果有一个用户成功下单两个及两个以上的购买成功的手机订单(购买商品为xiaomi 10,apple 12,小米13)那么输出这个用户的id及第一次成功购买手机的日期和第二次成功购买手机的日期,以及购买手机成功的次数。
结果如下:
2. 需要用到的表
订单信息表:order_info
订单明细表:order_detail
商品信息表:sku_info
3. 查询sql
WITH tmp as(
SELECT
user_id,
od.create_date,
name
from order_detail od
LEFT JOIN sku_info si
on od.sku_id = si.sku_id
LEFT JOIN order_info oi
on od.order_id = oi.order_id
where name in ('xiaomi 13','xiaomi 10','apple 12')
)
SELECT
user_id,first_date,last_date,
count(1) cn
from(
SELECT
user_id,
max(create_date) over(PARTITION by user_id) last_date,
min(create_date) over(PARTITION by user_id) first_date
from tmp
)t1 group by user_id,first_date,last_date