/*
①商品ID:product_id
②商品名称:product_name
③2024年第二季度的销售总额:q2_2024_sales_total
④在所属类别的销售排名:category_rank
⑤所属供应商:supplier_name
*/

WITH
t1 AS (     -- 链接三表,清洗数据,并计算每个商品的销售额
SELECT
    sp.product_id,
    sp.product_name,
    gy.supplier_name,
    COALESCE(SUM(dd.total_amount),0) AS xse,
    sp.category
FROM product_info AS sp
LEFT JOIN order_info AS dd
    ON dd.product_id = sp.product_id
    AND dd.order_date >= '2024-04-01'
    AND dd.order_date < '2024-07-01'
LEFT JOIN supplier_info AS gy
    ON sp.product_id = gy.product_id
GROUP BY sp.product_id,sp.product_name,gy.supplier_name,sp.category
)


SELECT      -- 使用窗口函数计算出商品在类别中的销售额排名后,按照题干要求排序
    product_id,
    product_name,
    xse AS q2_2024_sales_total,
    RANK() OVER(PARTITION BY category ORDER BY xse DESC) AS category_rank,
    supplier_name
FROM t1
ORDER BY product_id;