Hive 刷题——查询销售件数高于品类平均数的商品

需求描述

从订单明细表(order_detail)中查询累积销售件数高于其所属品类平均数的商品
期望结果如下:
sku_id
 
name
 
sum_num
 
cate_avg_num
 
2
手机壳
6044
1546
5
破壁机
242
194
7
热水壶
252
194
8
微波炉
253
194
12
遮阳伞
20682
5373
需要用到的表:
商品信息表:sku_info
sku_id(商品id)
name(商品名称)
category_id(分类id)
from_date(上架日期)
price(商品价格)
1
xiaomi 10
1
2020-01-01
2000
6
洗碗机
2
2020-02-01
2000
9
自行车
3
2020-01-01
1000
订单明细表:order_detail
order_detail_id(订单明细id)
order_id(订单id)
sku_id(商品id)
create_date(下单日期)
price(商品单价)
sku_num(商品件数)
1
1
1
2021-09-30
2000.00
2
2
1
3
2021-09-30
5000.00
5
22
10
4
2020-10-02
6000.00
1
23
10
5
2020-10-02
500.00
24
24
10
6
2020-10-02
2000.00
5

参考SQL

复制代码
select sku_id, name, sum_num, cate_avg_num
from (select od.sku_id, name, category_id, sum(sku_num) sum_num
      from order_detail od
               join sku_info si on od.sku_id = si.sku_id
      group by od.sku_id, name, category_id) t
         join
     (select category_id,
             cast(avg(sum_num) as bigint) cate_avg_num
      from (select od.sku_id, name, category_id, sum(sku_num) sum_num
            from order_detail od
                     join sku_info si on od.sku_id = si.sku_id
            group by od.sku_id, name, category_id) t
      group by category_id) t1
     on t.category_id = t1.category_id and sum_num > cate_avg_num;
复制代码

 

posted @   晓枫的春天  阅读(76)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 一文读懂知识蒸馏
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
点击右上角即可分享
微信分享提示