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

Wie finde ich den maximalen Datensatz für jede Gruppe in SQL?

Mary-Kate Olsen
Freigeben: 2025-01-07 21:47:41
Original
224 Leute haben es durchsucht

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

Finden Sie den größten Datensatz nach Gruppe in SQL

Bei der Datenbankverwaltung ist es häufig erforderlich, den größten Datensatz in jeder Datengruppe abzurufen. Betrachten Sie das folgende Szenario.

Frage:

Sie haben eine Tabelle mit drei Feldern: „Name“, „Top“ und „Gesamt“ mit den folgenden Daten:

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

Ihre Aufgabe besteht darin, für jeden eindeutigen „Name“-Wert den Datensatz mit dem größten „Gesamt“-Wert zu finden. Das gewünschte Ergebnis sollte sein:

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

Lösung:

Um die maximale Anzahl an Datensätzen pro Gruppe abzurufen, können Sie die folgende Abfrage verwenden:

<code class="language-sql">select
  Name, Top, Total
from
  sometable
where
  Total = (select max(Total) from sometable i where i.Name = sometable.Name)</code>
Nach dem Login kopieren

Diese Abfrage vergleicht den „Total“-Wert jedes Datensatzes mit seinem maximalen „Total“-Wert in derselben „Name“-Gruppe. Wählen Sie dann die Datensätze aus, deren „Gesamt“-Wert übereinstimmt.

Alternativ können Sie eine Unterabfrage verwenden, um das gleiche Ergebnis zu erzielen:

<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>
Nach dem Login kopieren

Diese Abfrage verwendet zunächst eine Unterabfrage, um den maximalen „Gesamtwert“ für jeden eindeutigen „Namen“ zu berechnen. Die Hauptabfrage verknüpft dann die Tabelle mit einer Unterabfrage, um nur die Datensätze mit dem übereinstimmenden Höchstwert „Gesamt“ auszuwählen.

Das obige ist der detaillierte Inhalt vonWie finde ich den maximalen Datensatz für jede Gruppe in SQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage