35、从订单明细表(order_detail)中。
求出同一个商品在2021年和2022年中同一个月的售卖情况对比。
结果如下(截取部分):
sku_id | month | 2020_skusum | 2021_skusum |
1 | 9 | 0 | 11 |
1 | 10 | 2 | 38 |
10 | 10 | 94 | 205 |
11 | 10 | 95 | 225 |
12 | 9 | 0 | 43 |
12 | 10 | 83 | 20556 |
2 | 10 | 26 | 6018 |
3 | 9 | 0 | 5 |
3 | 10 | 1 | 30 |
4 | 9 | 0 | 9 |
需要用到的表:
订单明细表: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 |
代码
with t as ( select sku_id ,cast(substr(create_date,6,2) as int) as month ,sum(if(substr(create_date,1,4)=2020,sku_num,0)) as 2020_skusum ,sum(if(substr(create_date,1,4)=2021,sku_num,0)) as 2021_skusum from order_detail group by sku_id ,cast(substr(create_date,6,2) as int) ) select * from t
36、从订单明细表(order_detail)和收藏信息表(favor_info)统计2021国庆期间,每个商品总收藏量和购买量
结果如下:
sku_id | sku_sum | favor_cn |
1 | 38 | 1 |
10 | 205 | 2 |
11 | 225 | 2 |
12 | 20556 | 0 |
2 | 6018 | 1 |
3 | 30 | 0 |
4 | 44 | 2 |
5 | 209 | 1 |
6 | 26 | 1 |
7 | 180 | 1 |
8 | 148 | 0 |
9 | 182 | 1 |
需要用到的表:
订单明细表: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 |
收藏信息表:favor_info
user_id(用户id) | sku_id(商品id) | create_date(收藏日期) |
101 | 3 | 2021-09-23 |
101 | 12 | 2021-09-23 |
101 | 6 | 2021-09-25 |
代码
with t1 as ( select sku_id ,nvl(sum(sku_num),0) as sku_sum from order_detail where create_date between '2021-10-01' and '2021-10-07' group by sku_id ) ,t2 as ( select sku_id ,nvl(count(1),0) as favor_cn from favor_info where create_date between '2021-10-01' and '2021-10-07' group by sku_id ) -- 这里的sku_id 应该用商品表的,但是题目没有给,只能用订单明细表来 select t1.sku_id ,nvl(t1.sku_sum,0) as sku_sum ,nvl(t2.favor_cn,0) as favor_cn from t1 left join t2 on t1.sku_id=t2.sku_id