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
Patricia ArquetteOriginal
2024-12-20 15:39:11632Durchsuche

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;

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

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!

Stellungnahme:
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