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
Freigeben: 2024-12-22 19:57:16
Original
856 Leute haben es durchsucht

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
Nach dem Login kopieren

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
Nach dem Login kopieren

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
Nach dem Login kopieren

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!

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