Heim >Datenbank >MySQL-Tutorial >Wie nummeriere ich Zeilen der Reihe nach nach Gruppen in SQL?

Wie nummeriere ich Zeilen der Reihe nach nach Gruppen in SQL?

Susan Sarandon
Susan SarandonOriginal
2024-12-23 14:23:14745Durchsuche

How to Number Rows Sequentially by Group in SQL?

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:

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

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!

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