hivesql之从订单详情表 (order_detail) 中,求出商品连续售卖的时间区间

题目需求

从订单详情表 (order_detail) 中,求出商品连续售卖的时间区间

结果如下(截取部分):
sku_id
(商品id)
start_date
(起始时间)
end_date
(结束时间)
12024-09-272024-10-01
12024-10-032024-10-08
92024-10-022024-10-03
92024-10-052024-10-08
102024-09-302024-10-08
132024-10-022024-10-06
132024-10-082024-10-08
需要用到的表:

订单明细表order_detail

order_detail_id
(订单明细id)
order_id
(订单id)
sku_id
(商品id)
create_date
(下单日期)
price
(商品单价)
sku_num
(商品件数)
1112024-09-283000.002
2132024-09-286000.005
151042023-10-019000.001
191052023-10-01600.0024
281062023-10-013000.005
select sku_id,
       date_add(date_diff, min_rk)           start_date,
       date_add(date_diff, min_rk + cnt - 1) end_date
from (select sku_id,
             date_diff,
             min(rk)  min_rk,
             count(*) cnt
      from (select sku_id,
                   create_date,
                   date_sub(create_date, rk) date_diff,
                   rk
            from (select sku_id,
                         create_date,
                         row_number() over (partition by sku_id order by create_date) rk
                  from order_detail
                 ) t1
           ) t2
      group by sku_id,
               date_diff
     ) t3
  • 13
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值