hivesql之求出同一商品在2022年和2023年中同一个月份的售卖情况对比

题目需求

从订单明细表 (order_detail) 中,求出同一商品在2022年和2023年中同一个月份的售卖情况对比。

结果如下(截取部分):
sku_id
(商品ID)
month
(月份)
2022_skusum
(2022销量)
2023_skusum
(2023销量)
13521
14718
5510105
5614125
11710143
11884556
2136518
312025
413080
需要用到的表:

订单明细表order_detail

order_detail_id
(订单明细ID)
order_id
(订单ID)
sku_id
(商品ID)
create_date
(下单日期)
price
(商品单价)
sku_num
(商品件数)
1222022-09-303000.003
3232022-09-305000.005
13842023-10-027000.008
15852023-10-029000.0014
147862023-10-0210000.0015
select if(t1.sku_id is null, t2.sku_id, t1.sku_id),
       month(if(t1.ym is null, t2.ym, t1.ym)),
       if(t1.sku_sum is null, 0, t1.sku_sum) 2022_skusum,
       if(t2.sku_sum is null, 0, t2.sku_sum) 2023_skusum
from (
         select sku_id,
                concat(date_format(create_date, 'yyyy - MM'), '- 01') concat_date,
                sum(sku_num)                                          sku_sum
         from order_detail
         where year(create_date) = 2022
         group by sku_id, date_format(create_date, 'yyyy-MM')
     ) t1
  full join
      (
        select
          sku_id,
          concat(date_format(create_date,'yyyy-MM'),'-01')  concat_date,
          sum(sku_num) sku_sum
        from
          order_detail
        where
          year(create_date)=2023
        group by
          sku_id,date_format(create_date,'yyyy-MM')
    )t2
on t1.sku_id=t2.sku_id and month (t1.concat_date) = month (t2.concat_date)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值