Hive综合案例练习(中级)第三十四题:销售订单首购和次购分析

销售订单首购和次购分析

题目需求

通过商品信息表(sku_info)订单信息表(order_info)订单明细表(order_detail)分析如果有一个用户成功下单两个及两个以上的购买成功的手机订单(购买商品为xiaomi 10,apple 12,小米13)那么输出这个用户的id及第一次成功购买手机的日期和第二次成功购买手机的日期,以及购买手机成功的次数。

结果如下:

| User_id
(用户id) | First_date
(首次时间) | Last_value
(末次时间) | Cn
(购买次数) |
| — | — | — | — |
| 101 | 2021-09-27 | 2021-09-28 | 3 |
| 1010 | 2021-10-08 | 2021-10-08 | 2 |
| 102 | 2021-10-01 | 2021-10-01 | 3 |
| 103 | 2021-09-30 | 2021-10-02 | 2 |
| 104 | 2021-10-03 | 2021-10-03 | 3 |
| 105 | 2021-10-04 | 2021-10-04 | 2 |
| 106 | 2021-10-04 | 2021-10-05 | 3 |
| 107 | 2021-10-05 | 2021-10-05 | 3 |
| 108 | 2021-10-06 | 2021-10-06 | 3 |
| 109 | 2021-10-07 | 2021-10-07 | 3 |

代码实现

select
  distinct oi.user_id,
  first_value(od.create_date)over(partition by oi.user_id order by od.create_date rows between unbounded preceding and unbounded following ) first_date,
  last_value(od.create_date)over(partition by oi.user_id order by od.create_date rows between unbounded preceding and unbounded following ) last_date,
  count(*)over(partition by oi.user_id order by od.create_date rows between unbounded preceding and unbounded following) cn
from
   order_info oi
join
   order_detail od
on
  oi.order_id=od.order_id
join
  sku_info si
on
  od.sku_id=si.sku_id
where
  si.name in('xiaomi 10','apple 12','xiaomi 13')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yiluohan0307

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值