Heim >Datenbank >MySQL-Tutorial >Wie finde ich die maximale Gesamtsumme für jede Namensgruppe in SQL?
Maximalwert der SQL-Gruppenabfrage
Diese Frage dient dazu, bestimmte Daten aus einer Tabelle zu extrahieren, mit dem Ziel, den Datensatz mit dem höchsten „Gesamt“-Wert für jedes eindeutige „Name“-Feld zu finden. Dies unterscheidet sich vom Problem, den letzten Datensatz jeder Gruppe zu finden.
Hier sind zwei SQL-Abfragemethoden, um dieses Ziel zu erreichen:
Methode 1: Unterabfrage
<code class="language-sql">SELECT Name, Top, Total FROM sometable WHERE Total = ( SELECT MAX(Total) FROM sometable i WHERE i.Name = sometable.Name );</code>
Diese Abfrage verwendet eine Unterabfrage, um den maximalen Name
-Wert in jeder Total
-Gruppe zu finden und wählt dann nur die Datensätze aus, die diesem Maximalwert entsprechen.
Methode 2: Selbstverbindung
<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>
Diese Abfrage verwendet INNER JOIN
, um sometable
mit einer Unterabfrage zu verbinden, die den maximalen Name
-Wert für jede Total
-Gruppe berechnet. Die INNER JOIN
-Bedingung stellt sicher, dass nur Datensätze ausgewählt werden, deren Total
-Wert mit dem Maximalwert für jede Gruppe übereinstimmt.
Beide Methoden liefern das gleiche Ergebnis:
Name | Top | Total |
---|---|---|
cat | 3 | 20 |
horse | 4 | 4 |
dog | 6 | 9 |
Das obige ist der detaillierte Inhalt vonWie finde ich die maximale Gesamtsumme für jede Namensgruppe in SQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!