SELECT
  product_id,
  p.product_name,
  SUM(
    CASE
      WHEN o.order_date BETWEEN '2024-04-01' AND '2024-06-30'
      THEN o.total_amount
      ELSE 0
    END
  ) AS q2_2024_sales_total,
  ROW_NUMBER() OVER (
    PARTITION BY p.category
    ORDER BY
      SUM(
        CASE
          WHEN o.order_date BETWEEN '2024-04-01' AND '2024-06-30'
          THEN o.total_amount
          ELSE 0
        END
      ) DESC
  ) AS category_rank,
  s.supplier_name
FROM product_info p
LEFT JOIN order_info o
  USING (product_id)
LEFT JOIN supplier_info s
  USING (product_id)
GROUP BY
  product_id,
  p.product_name,
  s.supplier_name,
  p.category
order by product_id asc;