Я не понимаю, почему «категория» должна быть продуктом. Что еще более важно, вы должны исправить свой запрос:
- Никогда не используйте запятые в предложении
FROM
. - Всегда используйте правильное, явно, стандартный
JOIN
синтаксис. - Использовать значимые псевдонимы таблиц.
На уровне product это будет:
SELECT Vendor_Name, Product
FROM (SELECT v.Vendor_Name, p.Description AS Product,
ROW_NUMBER() OVER (PARTITION BY v.Vendor_Key ORDER BY SUM(sf.Price * sf.Quantity) DESC) as seqnum
FROM SalesFacts sf JOIN
Vendor v
ON sf.Vendor_Key = v.Vendor_Key JOIN
Product p
ON sf.Product_Key = p.Product_Key
GROUP BY v.Vendor_Key, v.Vendor_Name, p.Product_Key, p.Description
) vp
WHERE vp.seqnum = 1;
Это можно легко изменить для работы с категорией, но в вопросе говорится "продукт", и в данных есть что-то, что соответствует этому.