Auswählen der obersten beiden Zeilen in jeder SQL-Gruppe
In SQL besteht eine häufige Aufgabe darin, nur die obersten Zeilen für jede Gruppe abzurufen. Die Standard-Aggregationsfunktionen für die Gruppierung (wie MAX() und MIN()) ermöglichen jedoch nur die Auswahl des höchsten oder niedrigsten Werts.
Abfrage zur Auswahl der beiden besten Ergebnisse pro Name:
Um dieser Herausforderung zu begegnen, ist eine komplexere Abfrage erforderlich. Hier ist ein Beispiel für die Auswahl der beiden höchsten Bewertungen für jeden Namen in der bereitgestellten Tabelle:
SELECT * FROM test s WHERE ( SELECT COUNT(*) FROM test f WHERE f.name = s.name AND f.score >= s.score ) <= 2;
Erklärung:
Beispielausgabe:
Die obige Abfrage gibt Folgendes zurück Ausgabe:
NAME SCORE ----------------- willy 2 willy 3 zoe 5 zoe 6
Diese Ausgabe enthält wie gewünscht die beiden besten Bewertungen für jeden Namen in der Tabelle.
Das obige ist der detaillierte Inhalt vonWie wähle ich die beiden obersten Zeilen für jede Gruppe in SQL aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!