Oberste N Zeilen für jede Gruppe in SQL
In SQL kann die Auswahl der obersten Zeilen für jede Gruppe mithilfe von Fensterfunktionen erfolgen. Fensterfunktionen ermöglichen die Durchführung von Berechnungen für eine Reihe von Zeilen, die als Fenster bezeichnet werden und durch eine bestimmte Reihenfolge und Partition definiert sind. In diesem Fall möchten wir die beiden obersten Zeilen für jede Gruppe auswählen, was mit den folgenden Schritten erreicht werden kann:
Hier ist eine Beispielabfrage, die diese Schritte implementiert:
SELECT * FROM ( SELECT *, RANK() OVER (PARTITION BY NAME ORDER BY SCORE DESC) AS row_rank FROM test ) AS ranked WHERE row_rank <= 2
Diese Abfrage erzeugt die gewünschte Ausgabe, wie unten gezeigt:
NAME SCORE ----------------- willy 2 willy 3 zoe 5 zoe 6
Das obige ist der detaillierte Inhalt vonWie wähle ich die obersten N Zeilen für jede Gruppe in SQL aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!