Implementierungsprozess von row_number in MySQL

Implementierungsprozess von row_number in MySQL

1. Hintergrund

Im Allgemeinen können wir in einer Data Warehouse-Umgebung problemlos die Funktion row_number verwenden, um Daten entsprechend einer bestimmten Dimension zu gruppieren und so den Effekt der Sortierung der Datennummern in jeder Gruppe zu erzielen. Wie in der folgenden Abbildung dargestellt, ist dies das in der MySQL-Umgebung generierte Effektdiagramm. Die Gruppierung hier basiert auf lcid, und num entspricht dem durch die Funktion row_number erzielten Effekt:

Implementieren des row_number-Effekts in der MySQL-Umgebung

2. Implementierungsprozess

1. MySQL-Variablen festlegen

Zwei Variablen einrichten

set @row_number:=0; --Generieren Sie die Zeilennummer-Sequenznummer gemäß dem Beurteilungsergebnis von lcid_no set @lcid_no:= 0; --Wird verwendet, um die lcid-Spaltendaten jeder Zeile abzurufen und sie dann mit den lcid-Daten der vorherigen Zeile zu vergleichen. Wenn sie gleich sind, wird es um 1 erhöht, andernfalls ist es 1

2. Anwendungsfall, wenn

Wählen Sie @Zeilennummer: = CASE
    WENN @lcid_no = s.lcid DANN @row_number + 1 
    SONST 1
    END AS Zahl,
    @lcid_no:=s.lcid ALS lcid,
	  s.lcid
VON r_qcloud_approval_fh_d s,(wählen Sie @orw_number:=0,@lcid_no:=0) t
BESTELLEN NACH s.lcid;

3. Prozessanalyse <br /> Wenn mehrere identische Daten vorliegen
1) Unter den Anfangsbedingungen zeigt der Cursor auf die ersten Daten. Zu diesem Zeitpunkt ist lcid_no = 0, lcid_no ist nicht gleich lcid, also ist row_number = 1
2) Der Cursor zeigt auf die zweiten Daten, lcid_no = lcid der vorherigen Daten, da die lcid der vorherigen Daten = die lcid der aktuellen Zeile ist, also row_number = 2
Keine doppelten Daten
1) Unter den Anfangsbedingungen zeigt der Cursor auf die ersten Daten. Zu diesem Zeitpunkt ist lcid_no = 0, lcid_no ist nicht gleich lcid, also ist row_number = 1

3. Anwendungsszenarien

In einer relationalen Datenbank wie MySQL gibt es keine row_number-Funktion.

Dies ist das Ende dieses Artikels über den Implementierungsprozess von row_number in MySQL. Weitere relevante Inhalte zu row_number in MySQL finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • Detaillierte Verwendung der MySQL-Funktionen row_number() und over()
  • Erklärung zur Verwendung von PostgreSQL ROW_NUMBER() OVER()
  • row_number() und unterschiedliche Verwendung in PostgreSQL
  • Unterschiede bei der Verwendung von Postgresql rank() over, dense_rank() und row_number()
  • Detaillierte Beispiele für die allgemeine Verwendung der Funktion row_number in SQL Server
  • Einführung in die Verwendung der vier wichtigsten SQL-Rankingfunktionen ROW_NUMBER, RANK, DENSE_RANK, NTILE
  • Fallstudie zu den SQL ROW_NUMBER()- und OVER()-Methoden

<<:  Lernen Sie Node.js von Grund auf

>>:  Ausführliche Erläuterung der Standortpriorität von Nginx

Artikel empfehlen

Beispiel für utf8mb4-Sortierung in MySQL

Allgemeine utf8mb4-Sortierregeln in MySQL sind: u...

JS erkennt den Fall der Eliminierung von Sternen

In diesem Artikelbeispiel wird der spezifische JS...

Leitfaden zum Schreiben von HTML-Code

Gängige Konventions-Tags Selbstschließende Tags, ...

So beheben Sie das Eingabe-Jitter-Problem beim WeChat-Applet

Finden Sie das Problem Schauen wir uns zunächst d...

Mysql SQL-Anweisungskommentare

Sie können MySQL-SQL-Anweisungen Kommentare hinzu...

Beispiele für die Interaktion zwischen MySQL und Python

Inhaltsverzeichnis 1. Daten vorbereiten Erstellen...

xtrabackup MySQL-Datenbank sichern und wiederherstellen

Aufgrund einiger seiner eigenen Merkmale (Sperren...

Ausführliche Erläuterung der Stilfunktion in Vue3-Einzeldateikomponenten

Inhaltsverzeichnis Stil mit Gültigkeitsbereich St...

Lösung für das MySQL-Anmeldewarnungsproblem

1. Einleitung Wenn wir uns bei MySQL anmelden, wi...