Heim >Datenbank >MySQL-Tutorial >Wie implementiert man eine sequentielle Zeilennummerierung mit Schlüsselgruppierung in SQL?

Wie implementiert man eine sequentielle Zeilennummerierung mit Schlüsselgruppierung in SQL?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-22 19:57:16930Durchsuche

How to Implement Sequential Row Numbering with Key Grouping in SQL?

Sequentielle Zeilennummerierung mit Schlüsselgruppierung in SQL

SQL bietet eine leistungsstarke Funktion zum sequentiellen Aufzählen von Zeilen innerhalb bestimmter Schlüsselgruppen. Diese Funktionalität erweist sich als besonders nützlich, wenn Sie Daten basierend auf unterschiedlichen Kategorien oder Attributen organisieren müssen. Lassen Sie uns untersuchen, wie diese Funktion in verschiedenen SQL-Dialekten funktioniert.

Implementierung in verschiedenen SQL-Dialekten

Die folgenden SQL-Dialekte bieten eine Lösung für die sequentielle Zeilennummerierung nach Schlüsselgruppen:

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

Beispieldaten und gewünschte Projektion

Betrachten Sie die folgende Beispieltabelle mit (CODE, NAME)-Tupeln:

CODE NAME    
---- ----
A    Apple
A    Angel
A    Arizona
B    Bravo
C    Charlie
C    Cat
D    Dog
D    Doppler
D    Data
D    Down

Die gewünschten Eine Projektion mit CODE als Gruppierungsattribut würde wie folgt aussehen:

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

SQL Abfrage zur Durchführung einer sequentiellen Zeilennummerierung

Um diese sequentielle Zeilennummerierung nach Schlüsselgruppe zu erreichen, können Sie die folgende SQL-Abfrage nutzen:

SELECT
    CODE,
    ROW_NUMBER() OVER (PARTITION BY CODE ORDER BY NAME) - 1 As C_NO,
    NAME
FROM
    MyTable

Diese Abfrage partitioniert die Tabelle basierend auf Ordnen Sie in der CODE-Spalte die Datensätze innerhalb jeder Partition nach der NAME-Spalte und subtrahieren Sie dann 1 von der resultierenden Zeilennummer, um die gewünschte fortlaufende Nummerierung beginnend bei 0 für jeden Schlüssel zu erhalten Gruppe.

Das obige ist der detaillierte Inhalt vonWie implementiert man eine sequentielle Zeilennummerierung mit Schlüsselgruppierung 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