Hive综合案例练习(中级)第二十三题:销售额完成任务指标的商品

销售额完成任务指标的商品

题目需求

商家要求每个商品每个月需要售卖出一定的销售总额

假设1号商品销售总额大于21000,2号商品销售总额大于10000,其余商品没有要求

请写出SQL从订单详情表中(order_detail)查询连续两个月销售总额大于等于任务总额的商品

结果如下:

sku_id(商品id)
1

代码实现及步骤

  • 求出1号商品和2号商品 每个月的购买总额 并过滤掉没有满足指标的商品
select sku_id,
       concat(substring(create_date, 0, 7), '-01') ymd,
       sum(price * sku_num)                        order_amount
from order_detail
where sku_id = '1'
   or sku_id = '2'
group by sku_id, substring(create_date, 0, 7)
having (sku_id = '1' and order_amount >= 21000)
    or (sku_id = '2' and order_amount >= 10000);
  • 判断是否为连续两个月
select distinct sku_id
from (
         select sku_id,
                count(*) over (partition by sku_id, flag) cn
         from (
                  select sku_id,
                         ymd,
                         add_months(ymd, -row_number() over (partition by sku_id order by ymd)) flag
                  from (
                           select sku_id,
                                  concat(substring(create_date, 0, 7), '-01') ymd,
                                  sum(price * sku_num)                        order_amount
                           from order_detail
                           where sku_id = '1'
                              or sku_id = '2'
                           group by sku_id, substring(create_date, 0, 7)
                           having (sku_id = '1' and order_amount >= 21000)
                               or (sku_id = '2' and order_amount >= 10000)
                       ) t1
              ) t2
     ) t3
where cn >= 2;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

yiluohan0307

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

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

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

打赏作者

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

抵扣说明:

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

余额充值