select 
    product_id,
    product_name,
    sum(case when order_date between '2024-04-01' and '2024-06-30' then total_amount else 0 end) as q2_2024_sales_total,
    rank() over(partition by category order by sum(case when order_date between '2024-04-01' and '2024-06-30' then total_amount else 0 end) desc) as category_rank,
    supplier_name
from product_info 
    join order_info using(product_id) 
    join supplier_info using(product_id)
group by product_id,product_name,supplier_name
order by product_id;