Heim > Datenbank > MySQL-Tutorial > Wie erhalte ich die beiden obersten Zeilen für jede Gruppe in SQL?

Wie erhalte ich die beiden obersten Zeilen für jede Gruppe in SQL?

Patricia Arquette
Freigeben: 2024-12-29 11:05:11
Original
607 Leute haben es durchsucht

How to Get the Top Two Rows for Each Group in SQL?

Ermitteln der beiden obersten Zeilen für jede Gruppe in SQL

SQL-Abfragen ermöglichen es Benutzern, bestimmte Daten aus Tabellen zu extrahieren, aber was ist, wenn Sie sie benötigen? die beiden obersten Zeilen für jede Gruppe auswählen? Dieses Szenario kann auftreten, wenn Sie die Datensätze mit der höchsten Bewertung analysieren oder mehrere Werte innerhalb einer Gruppe abrufen möchten.

Betrachten wir die folgende Tabelle als Beispiel:

NAME SCORE
willy 1
willy 2
willy 3
zoe 4
zoe 5
zoe 6

Um die abzurufen Um die beiden höchsten Werte für jeden Namen zu ermitteln, können wir die folgende SQL-Abfrage verwenden:

SELECT *
FROM test s
WHERE
    (
        SELECT COUNT(*)
        FROM test f
        WHERE f.name = s.name AND
              f.score >= s.score
    ) <= 2
Nach dem Login kopieren

So funktioniert die Abfrage funktioniert:

  • Die äußere Abfrage (SELECT * FROM test s) wählt alle Zeilen aus der Testtabelle aus.
  • Die innere Abfrage, in Klammern eingeschlossen, berechnet die Anzahl der Zeilen in der Testtabelle mit einem bestimmten Namen und einer Punktzahl, die größer oder gleich der Punktzahl der aktuellen Zeile ist (f.score >= s.score).
  • Die Die WHERE-Klausel der äußeren Abfrage filtert die Zeilen basierend auf der Anzahl aus der inneren Abfrage. Es werden nur Zeilen ausgewählt, deren Anzahl kleiner oder gleich 2 ist. Dadurch wird sichergestellt, dass wir für jede Gruppe die beiden besten Ergebnisse erhalten.
  • Die erwartete Ausgabe für diese Abfrage lautet wie folgt:

    NAME SCORE
    willy 2
    willy 3
    zoe 5
    zoe 6

    Das obige ist der detaillierte Inhalt vonWie erhalte ich die beiden obersten Zeilen 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