Для этого вы можете использовать аналитические функции:
ОБНОВЛЕНО
SELECT ProductName, Quantity, OrderID
FROM ( SELECT Products.ProductName, [Order Details].Quantity, OrderID,
ROW_NUMBER() OVER(PARTITION BY Products.ProductName ORDER BY [Order Details].Quantity DESC) Corr
FROM Products
INNER JOIN [Order Details] ON Products.ProductID = [Order Details].ProductID) A
WHERE Corr = 1
Таким образом, вы получите только одну запись для каждого продукта, что означает, что если у вас естьболее одного заказа с одинаковым максимальным количеством, в результате вы получаете только один.Вы можете добавить больше столбцов (например, дату заказа) на ORDER BY
, чтобы выбрать самый новый или самый старый из них.Если вы хотите получить все записи, связанные с количеством, вы можете использовать RANK
вместо ROW_NUMBER
.
SELECT ProductName, Quantity, OrderID
FROM ( SELECT Products.ProductName, [Order Details].Quantity, OrderID,
RANK() OVER(PARTITION BY Products.ProductName ORDER BY [Order Details].Quantity DESC) Corr
FROM Products
INNER JOIN [Order Details] ON Products.ProductID = [Order Details].ProductID) A
WHERE Corr = 1