Heim >Datenbank >MySQL-Tutorial >Wie finde ich den Datensatz mit dem Maximalwert für jede Gruppe in SQL?

Wie finde ich den Datensatz mit dem Maximalwert für jede Gruppe in SQL?

Linda Hamilton
Linda HamiltonOriginal
2025-01-07 21:42:45592Durchsuche

How to Find the Record with the Maximum Value for Each Group in SQL?

SQL: Identifizieren Sie den Datensatz mit dem Maximalwert in jeder Gruppierung

Angenommen, es gibt eine Tabelle mit drei Feldern (Name, höchster Wert und Gesamtwert) und Daten, und die Aufgabe besteht darin, den Datensatz mit dem höchsten Gesamtwert für jeden einzelnen Namen abzurufen.

Lösung:

Die folgende Abfrage liefert die gewünschten Ergebnisse:

<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:

Ein anderer Ansatz besteht darin, eine Unterabfrage zu verwenden, um den maximalen Gesamtwert für jeden Namen zu ermitteln und dann das Ergebnis mit der Originaltabelle zu verknüpfen, um die entsprechenden Datensätze abzurufen:

<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>

Das obige ist der detaillierte Inhalt vonWie finde ich den Datensatz mit dem Maximalwert für jede Gruppe 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