У меня есть таблица продуктов и каждая запись имеет цену, которую он был продан в, который может варьироватьсяКак запросить определенную строку из каждой группы
+-------+-----+----+
|Product|Price|Date|
+-------+-----+----+
|a |2 |A |
+-------+-----+----+
|a |3 |B |
+-------+-----+----+
|a |4 |C |
+-------+-----+----+
|a |1 |D |
+-------+-----+----+
|b |10 |E |
+-------+-----+----+
|b |15 |F |
+-------+-----+----+
|b |20 |G |
+-------+-----+----+
Я хочу, чтобы выбрать максимальную цену группы строк с помощью [Product ], как запросить? Результат я хочу:
+-------+-----+----+
|Product|Price|Date|
+-------+-----+----+
|a |4 |C |
+-------+-----+----+
|b |20 |G |
+-------+-----+----+
Я попытался
SELECT Product, Max(Price) as Price FROM TableName GROUP BY Product
, но он не получает столбец [Date].
Предполагая, что поле цены может быть десятичным или деньгами, это не очень хорошая идея присоединиться к такому полю. –
Спасибо, он работает хорошо и занимает около 2 секунд, чтобы запросить среди 2 миллионов записей в SQL Server 2005. – Nature
Что делать, если я хочу выбрать две верхние записи в каждой группе? – Nature