Heim > Datenbank > MySQL-Tutorial > Wie rufe ich nur die Top -N -Zeilen pro Gruppe in MySQL ab?

Wie rufe ich nur die Top -N -Zeilen pro Gruppe in MySQL ab?

Susan Sarandon
Freigeben: 2025-01-25 11:57:10
Original
867 Leute haben es durchsucht

How to Retrieve Only the Top N Rows per Group in MySQL?

mysql erhalten die vorderen N -Zeilendaten jeder Gruppe

Problembeschreibung:

In der Datenbankabfrage müssen Sie möglicherweise nur für jede Datengruppe nach N -Row -Daten suchen. Beispielsweise kann Ihr Datensatz mehrere Zeilen von Gruppen in Gruppen und IDs enthalten. Wenn Sie die ersten fünf Datensätze jeder ID anzeigen möchten, müssen Sie eine Methode implementieren, um das Ergebnis auf die erforderliche Menge zu beschränken.

Lösung:

In MySQL 8 oder höhere Versionen können Sie Row_Number, Rang oder Dense_Rank -Funktion verwenden, um diesen Zweck zu erreichen. Die spezifische Funktion, die Sie auswählen, hängt von der genauen Definition der "vorderen N -Zeile" und dem Umgang mit der Seite an Seite ab. Das Folgende ist die Unterteilung der Ergebnisse dieser Funktionen:

row_number:

Zuweisen die Sequenznummer für die Zeile in jeder Gruppe ab 1. Wenn Sie das gleiche Ranking brechen möchten, um das gleiche Ranking mit demselben Wert zu geben, ist diese Funktion ideal.

    Rang:
  • Das Verteilungsranking der Zeile in jeder Gruppe und die Spalte führt zum gleichen Rang. Wenn Sie unterschiedlichen Rankings Priorität geben, ist diese Funktion nützlich. dense_rank:
  • ähnlich wie Rang, aber es zudichte Ranglisten zuordnet, was bedeutet, dass zwischen dem Ranking keine Lücke zwischen dem Ranking besteht. Diese Funktion gilt, wenn Sie sicherstellen möchten, dass die Folge -up -Linie die einzige Rangfolge hat.
  • Beispiel:
  • Die folgende Abfrage verwendet die Funktion row_number, um die ersten fünf Zeilen jeder ID zurückzugeben und nach der Bewertungsreihenfolge zu sortieren:
Ausgabe:

Durch die Verwendung dieser Funktionen können Sie die Ergebnisse effektiv auf die vorderen N -Zeilen jeder Gruppe einschränken und die Datenbedürfnisse sicherstellen.

Das obige ist der detaillierte Inhalt vonWie rufe ich nur die Top -N -Zeilen pro Gruppe in MySQL ab?. 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