Heim > Datenbank > MySQL-Tutorial > Wie ordne ich fortlaufende Zeilennummern nach Schlüsselgruppe in SQL zu?

Wie ordne ich fortlaufende Zeilennummern nach Schlüsselgruppe in SQL zu?

Patricia Arquette
Freigeben: 2024-12-20 15:39:11
Original
628 Leute haben es durchsucht

How to Assign Sequential Row Numbers by Key Group in SQL?

Sequentielle Zeilennummerierung nach Schlüsselgruppe in SQL

In SQL weist die Funktion ROW_NUMBER() Zeilen innerhalb einer Ergebnismenge fortlaufende Nummern zu. Um fortlaufende Nummern nach Schlüsselgruppe zuzuweisen, verwenden Sie die PARTITION BY-Klausel, um die Daten nach dem/den gewünschten Schlüssel(n) zu gruppieren.

Hier ist ein Beispiel für die angegebene Tabelle und die gewünschte Ausgabe:

SELECT
    CODE,
    ROW_NUMBER() OVER (PARTITION BY CODE ORDER BY NAME) - 1 AS C_NO,
    NAME
FROM
    MyTable;
Nach dem Login kopieren

Ausgabe:

CODE | C_NO | NAME
-----|------|------
A    | 0    | Apple
A    | 1    | Angel
A    | 2    | Arizona
B    | 0    | Bravo
C    | 1    | Charlie
C    | 0    | Cat
D    | 0    | Dog
D    | 1    | Data
D    | 2    | Down
D    | 3    | Doppler
Nach dem Login kopieren

Diese Abfrage weist fortlaufende Zeilennummern (C_NO) für jede Schlüsselgruppe (CODE) zu, beginnend mit 0, in aufsteigender Reihenfolge von NAME innerhalb jeder Gruppe.

Unterstützte Datenbanken:

Die ROW_NUMBER()-Funktion mit PARTITION BY wird in den folgenden Datenbanken unterstützt:

  • SQL Server
  • Oracle
  • Postgres
  • Sybase
  • MySQL 8.0
  • MariaDB 10.2
  • SQLite 3.25

Das obige ist der detaillierte Inhalt vonWie ordne ich fortlaufende Zeilennummern nach Schlüsselgruppe in SQL zu?. 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