SELECT order_id, product_category, amount FROM (SELECT order_id, product_category, amount, ROW_NUMBER() OVER (PARTITION BY product_category ORDER BY amount DESC) AS rn FROM orders) sub WHERE rn <= 3 ORDER BY product_category, amount DESC;
Write your query and click "Run Query" (Ctrl + Enter) to see results and testcase validation.