Heim >Datenbank >MySQL-Tutorial >Wie rufe ich den maximalen „Gesamtwert' für jeden eindeutigen „Namen' in SQL ab?

Wie rufe ich den maximalen „Gesamtwert' für jeden eindeutigen „Namen' in SQL ab?

Susan Sarandon
Susan SarandonOriginal
2025-01-07 21:20:41484Durchsuche

How to Retrieve the Maximum

SQL-Tipp: Maximalwert nach Gruppe extrahieren

Bei Datenbankabfragen ist es häufig erforderlich, den Maximalwert für jede unterschiedliche Gruppierung in der Tabelle zu extrahieren. In diesem Artikel wird das Problem gelöst, wie der Datensatz mit dem höchsten „Gesamt“-Wert für jeden eindeutigen „Namen“ in einer Tabelle ausgewählt wird.

Beispieltabellen und Daten:

Angenommen, wir haben die folgende Beispieltabelle:

Name Top Total
cat 1 10
dog 2 7
cat 3 20
horse 4 4
cat 5 10
dog 6 9

Abfrageziel:

Unser Ziel ist es, die folgenden Ergebnisse zu extrahieren:

Name Top Total
cat 3 20
horse 4 4
dog 6 9

Lösung:

Dies kann mit der folgenden SQL-Abfrage erreicht werden:

<code class="language-sql">SELECT
  Name, Top, Total
FROM
  sometable
WHERE
  Total = (SELECT MAX(Total) FROM sometable i WHERE i.Name = sometable.Name);</code>

Erklärung:

Diese Abfrage verwendet eine Unterabfrage in der WHERE-Klausel. Die Unterabfrage ermittelt den Maximalwert von „Total“ für jede Gruppe basierend auf „Name“. Die äußere Abfrage filtert dann die Tabelle und wählt nur die Datensätze aus, deren „Total“ diesem Maximalwert entspricht.

Alternative:

Alternative zur Verwendung von Inner Joins:

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

Fazit:

Beide Methoden sind effektiv beim Extrahieren der erforderlichen Datensätze aus der Tabelle, indem sie den Maximalwert von „Total“ für jeden einzelnen „Namen“ ermitteln. Diese Abfragen können an verschiedene Datenbankverwaltungssysteme angepasst werden und bieten eine allgemeine Methode zum Extrahieren von Maximalwerten aus gruppierten Daten.

Das obige ist der detaillierte Inhalt vonWie rufe ich den maximalen „Gesamtwert' für jeden eindeutigen „Namen' in SQL ab?. 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