OK, alors j’ai jeté un coup d’œil aux autres solutions et aucune aide. Voici donc ce que j'essaie de faire. Je dois sélectionner la ligne à plusieurs colonnes où la valeur d'une colonne est la valeur maximale.
voici des exemples de données
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
Je dois sélectionner la ligne entière où orderfileid est le maximum pour chaque numéro d'article unique.
l'ensemble de données retourné devrait ressembler à
orderfileid item number item cost warehouse
2 1234 1.67 DFW
3 2345 2.45 NYY
3 6789 2.4 ORD
Je pense avoir essayé toutes les combinaisons de select max (orderfileid) auquel je peux penser
Toute aide serait appréciée. Merci
Vous devez rechercher vos valeurs MAX dans une sous-requête, puis utiliser ces résultats pour rejoindre la table principale afin de récupérer les colonnes.
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
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
Je n'utiliserais même pas Max. Il suffit de combiner GROUP BY et ORDER BY
SELECT * FROM orders GROUP BY item_number ORDER BY orderfileid DESC
alors pour minimum changer juste à ASC
Essayer
SELECT * FROM `TABLE` WHERE orderfileid=(select max(orderfileid) from TABLE)
vous pouvez vous référer à un problème similaire sur la façon de regrouper des éléments en utilisant le partitionnement et en en choisissant un par partition dans mysql
Suppression de lignes: aucun membre n'a plus de x enregistrements
c'est quelque chose de similaire à faire le classement dans Oracle. mon précédent post était pour Oracle. ma faute..