SQL根据一列中的最大值选择多个列

lar*_*man 14 mysql 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
Run Code Online (Sandbox Code Playgroud)

我需要选择orderfileid为每个唯一项目编号的最大行

返回的数据集应如下所示

    orderfileid item number item cost   warehouse
    2           1234        1.67             DFW
    3           2345        2.45             NYY
    3           6789        2.4              ORD
Run Code Online (Sandbox Code Playgroud)

我想我尝试了我能想到的select max(orderfileid)的每个组合

任何帮助都会得到满足.谢谢

Joe*_*lli 15

您需要在子查询中找到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
Run Code Online (Sandbox Code Playgroud)