原题链接:http://practice.atguigu.cn/#/question/31/desc?qType=SQL
题目需求
从订单明细表(order_detail)中列出每个商品每个年度的购买总额
期望结果如下(截取部分):
sku_id(商品id) | year_date(年份) | sku_sum<decimal(16,2)>(销售总额) |
---|---|---|
1 | 2021 | 102000.00 |
10 | 2021 | 29900.00 |
11 | 2021 | 16000.00 |
12 | 2021 | 413640.00 |
2 | 2021 | 60440.00 |
3 | 2021 | 180000.00 |
4 | 2021 | 318000.00 |
5 | 2021 | 121000.00 |
6 | 2021 | 64000.00 |
7 | 2021 | 25200.00 |
8 | 2021 | 151800.00 |
9 | 2021 | 194000.00 |
需要用到的表:
订单明细表: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 |
解题思路
SELECT sku_id,
year(create_date) AS year_date,
cast(SUM(price*sku_num) AS decimal(16,2)) AS sku_sum
FROM order_detail
GROUP BY sku_id,
year(create_date)