Rank rows within a group in one query

SELECT category, sku, sales
FROM (
  SELECT category, sku, sales,
         ROW_NUMBER() OVER (PARTITION BY category ORDER BY sales DESC, sku) AS rn
  FROM sales
) ranked
WHERE rn <= 3;