Sequenzielle Nummerierung von Zeilen nach Gruppenschlüssel in SQL
In SQL können Sie Zeilen innerhalb einer Schlüsselgruppe mithilfe der Funktion ROW_NUMBER() fortlaufend nummerieren . Diese Funktion weist jeder Zeile innerhalb einer Partition eine eindeutige Nummer zu, die durch die PARTITION BY-Klausel definiert wird.
Syntax:
SELECT *, ROW_NUMBER() OVER (PARTITION BY key_column ORDER BY order_column) - 1 AS row_number FROM table_name
Beispiele:
Beachten Sie die bereitgestellte Tabelle:
CODE | NAME |
---|---|
A | Apple |
A | Angel |
A | Arizona |
B | Bravo |
C | Charlie |
C | Cat |
D | Dog |
D | Data |
D | Down |
D | Doppler |
Um die zu nummerieren Um innerhalb der CODE-Gruppe nacheinander Zeilen zu erstellen, verwenden Sie die folgende Abfrage:
SELECT CODE, ROW_NUMBER() OVER (PARTITION BY CODE ORDER BY NAME) - 1 AS C_NO, NAME FROM MyTable
Dies führt zum gewünschten Ergebnis:
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 |
Kompatibilität:
Die Funktion ROW_NUMBER() wird von folgenden Datenbanken unterstützt:
Dies gilt für die am häufigsten verwendeten SQL-Datenbanken.
Das obige ist der detaillierte Inhalt vonWie nummeriere ich Zeilen der Reihe nach nach Gruppen in SQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!