SQL Выбор нескольких столбцов на основе максимального значения в одном столбце
ОК, поэтому я посмотрел, как другие решения не помогут. Итак, вот что я пытаюсь сделать.
Мне нужно выбрать строку с несколькими столбцами, где значение в одном столбце является максимальным значением.
Вот пример данных
orderfileid item number item cost warehouse
1 1234 3.45 ATL
1 2345 1.67 DFW
3 2345 2.45 NYY
3 678 2.4 ORD
2 1234 1.67 DFW
Мне нужно выбрать всю строку, где orderfileid является максимальным для каждого уникального номера элемента
возвращаемый набор данных должен выглядеть как
orderfileid item number item cost warehouse
2 1234 1.67 DFW
3 2345 2.45 NYY
3 6789 2.4 ORD
Я думаю, что я пробовал каждую комбинацию select max (orderfileid), о которой я могу думать
Любая помощь будет назначена.
спасибо
Ответы
Ответ 1
Вам нужно найти значения MAX в подзапросе, а затем использовать эти результаты для присоединения к основной таблице для извлечения столбцов.
SELECT t.OrderFileId, t.ItemNumber, t.ItemCost, t.Warehouse
FROM YourTable t
INNER JOIN (SELECT ItemNumber, MAX(OrderFileId) AS MaxOrderId
FROM YourTable
GROUP BY ItemNumber) q
ON t.ItemNumber = q.ItemNumber
AND t.OrderFileId = q.MaxOrderId
Ответ 2
select
t.*
from
table t
inner join (
select itemnumber, max(orderfileid) maxof
from table
group by itemnumber
) m on t.itemnumber = m.itemnumber
and t.orderfileid = m.maxof
Ответ 3
Try
SELECT * FROM `TABLE` WHERE orderfileid=(select max(orderfileid) from TABLE)
Ответ 4
вы можете обратиться к аналогичной проблеме о том, как группировать вещи, используя разбиение на разделы и выбор одного для каждого раздела в mysql
Удаление строк: ни один член не имеет записей X
это нечто похожее на выполнение ранжирования в Oracle. мой предыдущий пост был для оракула. мой плохой.
Ответ 5
Я бы даже не использовал Max. Просто соедините GROUP BY и ORDER BY
SELECT * FROM orders GROUP BY item_number ORDER BY orderfileid DESC
то для минимального простое изменение в ASC
Ответ 6
Я думаю, что вы ищете предложение "Имея". Посмотрите это.
выберите orderfileid, max (itemnumber), itemcost, склад из группы MyTable с помощью orderfileid с max (itemnumber);