Heim > Datenbank > MySQL-Tutorial > Wie kann ich die ersten N Zeilen innerhalb jeder Gruppe in PostgreSQL effizient abrufen?

Wie kann ich die ersten N Zeilen innerhalb jeder Gruppe in PostgreSQL effizient abrufen?

Barbara Streisand
Freigeben: 2025-01-15 11:05:45
Original
447 Leute haben es durchsucht

How to Efficiently Fetch the First N Rows Within Each Group in PostgreSQL?

PostgreSQL: Abrufen der obersten N Zeilen innerhalb jeder Gruppe

Eine häufige Aufgabe in PostgreSQL besteht darin, eine festgelegte Anzahl von Zeilen aus jeder Gruppe auszuwählen. Dies kann mithilfe einer Technik, die oft als „Grouped LIMIT“ bezeichnet wird, effizient erreicht werden. So erreichen Sie dies mithilfe von Fensterfunktionen (verfügbar in PostgreSQL 8.4 und höher):

<code class="language-sql">SELECT *
FROM (
  SELECT
    ROW_NUMBER() OVER (PARTITION BY section_id ORDER BY name) AS rn,
    t.*
  FROM xxx t
) AS x
WHERE rn <= N;</code>
Nach dem Login kopieren

Erklärung:

Die Fensterfunktion ROW_NUMBER() OVER (PARTITION BY section_id ORDER BY name) weist jeder Zeile innerhalb jeder rn-Gruppe einen eindeutigen Rang (section_id) zu, sortiert nach der Spalte name. Die äußere Abfrage filtert dann diese Ergebnisse und behält nur Zeilen bei, deren Rang (rn) kleiner oder gleich N ist (ersetzen Sie N durch die gewünschte Anzahl von Zeilen pro Gruppe). Dadurch werden die Ergebnisse effektiv auf die oberen N Zeilen für jede Gruppe beschränkt.

Das obige ist der detaillierte Inhalt vonWie kann ich die ersten N Zeilen innerhalb jeder Gruppe in PostgreSQL effizient abrufen?. 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