Maison >base de données >tutoriel mysql >Comment trouver l'enregistrement avec la valeur maximale pour chaque groupe en SQL ?
SQL : Identifiez l'enregistrement avec la valeur maximale dans chaque groupe
Supposons qu'il existe une table contenant trois champs (nom, valeur la plus élevée et total) et des données, et que la tâche consiste à récupérer l'enregistrement avec la valeur totale la plus élevée pour chaque nom différent.
Solution :
La requête suivante renvoie les résultats souhaités :
<code class="language-sql">SELECT Name, Top, Total FROM sometable WHERE Total = (SELECT MAX(Total) FROM sometable i WHERE i.Name = sometable.Name);</code>
Alternative :
Une autre approche consiste à utiliser une sous-requête pour trouver la valeur totale maximale pour chaque nom, puis à joindre le résultat à la table d'origine pour récupérer les enregistrements correspondants :
<code class="language-sql">SELECT Name, Top, Total FROM sometable INNER JOIN ( SELECT MAX(Total) AS Total, Name FROM sometable GROUP BY Name ) AS max ON max.Name = sometable.Name AND max.Total = sometable.Total;</code>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!