Heim >Datenbank >MySQL-Tutorial >Wie finde ich die maximale Gesamtsumme für jede Namensgruppe in SQL?

Wie finde ich die maximale Gesamtsumme für jede Namensgruppe in SQL?

Patricia Arquette
Patricia ArquetteOriginal
2025-01-07 21:11:44312Durchsuche

How to Find the Maximum Total for Each Name Group 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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn