MySQL-Datenbank-Grundlagen SQL-Fensterfunktion Beispielanalyse-Tutorial

MySQL-Datenbank-Grundlagen SQL-Fensterfunktion Beispielanalyse-Tutorial

Einführung

Vor einiger Zeit schrieb Huang einen Artikel mit dem Titel „MySQL Window Practice“ (der Artikel lautet wie folgt), aber der Großteil des Inhalts basierte auf praktischen Übungen ohne detaillierte Erklärungen.

Portal: Praktische MySQL-Fensterfunktion SQL-Analyse der Testergebnisse und Lebenshaltungskosten von Schülern

Also schickte ich dem hübschen Mädchen Yueya eine private Nachricht, um zu fragen, ob sie einen Artikel mit dem Titel „Die Grundlagen von Fensterfunktionen“ schreiben könnte, der eine gute Ergänzung zum vorherigen Artikel wäre. Schauen Sie, sie hat es sehr schnell fertig geschrieben und teilt es heute mit Ihnen, mit dem Ziel, mit Ihnen allen zu kommunizieren und zu lernen!

Unten finden Sie eine scherzhafte Einführung zu Crescent Moon mit einem großen angehängten Bild.

Einführung

Fensterfunktionen, auch als „Fensteröffnungsfunktionen“ bekannt, können nach MySQL 8.0 verwendet werden.

Wenn wir Fragen zu Likou stellen, werden wir feststellen, dass die schwierigeren Fragen häufig die Anwendung von Fensterfunktionen beinhalten. Man kann sagen, dass Fensterfunktionen ein Maßstab sind, um zu testen, ob unser SQL-Niveau ein kompetentes Niveau erreicht hat.

Das Format der Fensterfunktion ist: Aggregatfunktion + over()

Das Fenster beschreibt den Inhalt, der in den over()-Klammern abgegrenzt ist. Dieser Inhalt ist der Gültigkeitsbereich der Fensterfunktion, d. h. die verarbeiteten Daten liegen im Gültigkeitsbereich von over().

Mein persönliches Verständnis von Fensterfunktionen besteht darin, ein verschiebbares Fenster für die Quelldaten zu öffnen. Wenn sich das Fenster verschiebt, können zusätzliche Berechnungen an den darin enthaltenen Daten durchgeführt werden, z. B. gleitender Durchschnitt, Gruppensortierung usw. Das Fenster kann eine Zeile, mehrere Zeilen oder sogar alle Zeilen umfassen.

Fensterfunktionen können auch Vorgänge wie synchrones Sortieren und Aggregieren mehrerer Datengruppen ausführen und die Ergebnisse nach Group-By-Klauseln oder Where-Verarbeitung verarbeiten. Sie können nur in die Select-Klausel geschrieben werden.

Soul Painter ist online und eine einfache Demo der Fensterfunktion wird mit Excel erstellt:

Bildbeschreibung hier einfügen

Aggregatfunktionen + over()

Grundlegende Syntax:

Summe/Durchschnitt (Name des verarbeiteten Felds) über (Partition nach Name des gruppierten Felds, Reihenfolge nach Name der sortierten Feldzeilen zwischen … und …)

Bedeutung: Gibt an, dass jede Gruppe nach der Gruppierung nach Partition summiert oder gemittelt werden soll.

--Beinhaltet Zeilen zwischen 6 vorhergehenden und aktuellen Zeilen
--Beinhaltet Zeilen zwischen der aktuellen Zeile und den 3 folgenden Zeilen: Zeilen zwischen der aktuellen Zeile und den 3 folgenden
--Beinhaltet diese Zeile und alle vorherigen Zeilen: Zeilen zwischen unbegrenzter vorheriger und aktueller Zeile
--Beinhaltet diese Zeile und alle nachfolgenden Zeilen: Zeilen zwischen der aktuellen Zeile und unbegrenzten folgenden
--Von den ersten 3 Zeilen zur nächsten Zeile (insgesamt 5 Datenzeilen): Zeilen zwischen 3 vorhergehenden und 1 nachfolgenden

Es gibt andere Aggregatfunktionen wie „max“, „min“ und „count“, die ähnliche grammatikalische Strukturen haben.

Sortierfunktion + over()

Die drei Funktionen row_number(), rank() und dense_rank() sortieren alle die Ergebnisse der Auswahlabfrage. Schauen wir uns die Unterschiede zwischen ihnen an.

row_number() : Bei der nicht-wiederholenden fortlaufenden Sortierung wird beginnend bei 1 eine nicht-wiederholende Seriennummer für die abgefragten Daten zur Sortierung generiert

Grundlegende Syntax – row_number() über (Sortierung nach dem zu sortierenden Feld aufsteigend/absteigend);

rank() : Es handelt sich um eine Sprungsortierung. Zwei Daten mit demselben Ergebnis werden nebeneinander platziert, und der Rang, den die nächsten Daten einnehmen, wird freigegeben, d. h., derselbe Rang belegt einen Platz

Grundlegende Syntax – rank() over (Sortierung nach dem zu sortierenden Feld aufsteigend/absteigend);

dense_rank() : Bei wiederholter kontinuierlicher Sortierung werden zwei Daten mit demselben Ergebnis nebeneinander platziert, und der von den nächsten Daten belegte Rang wird nicht freigegeben, dh der gleiche Rang belegt keinen Platz

Grundlegende Syntax – dense_rank() über (Sortierung nach dem Feld, das aufsteigend/absteigend sortiert werden soll);

Wir verwenden ein Diagramm, um die Beziehung zwischen diesen drei darzustellen:

Bildbeschreibung hier einfügen

ntile()-Funktion + over()

Grundlegende Syntax: ntile(n) over(partition by…order by…), wobei n die Anzahl der zu unterteilenden Segmente darstellt.

ntile(n) wird verwendet, um die gruppierten Daten gleichmäßig in n Teile aufzuteilen. Wenn die Anzahl der aufgeteilten Gruppen nicht gleich ist, erhält die erste Gruppe mehr Daten.

Die Funktion ntile() wird normalerweise verwendet, um beispielsweise die besten 10 % der Schüler einer Klasse zu finden. Dann wird n als 10 angenommen und wobei verwendet wird, um die erste Datengruppe herauszufiltern.

Offset-Funktion + over()

Grundlegende Syntax 1: Erste N Zeilen: lead(str, n, default) over(partition by …order by …)

Grundlegende Syntax 2: N Zeilen später: lag(str, n, default) over(partition by …order by …)

str stellt den Feldnamen dar, n stellt die ersten/letzten n Datenzeilen dar, der Standardwert ist 1 und default bedeutet, dass es leer gelassen werden kann, wenn der Wertebereich den Rückgabewert der gesamten Tabelle überschreitet. Wenn es leer gelassen wird, wird standardmäßig N/A zurückgegeben.

Mit der Offset-Funktion werden die ersten N Zeilen oder die letzten N Zeilen von Daten desselben Felds als separate Spalten extrahiert. Dabei ist zu beachten, dass „lead“ die ersten N Zeilen und „lag“ die letzten N Zeilen darstellt.

Oben finden Sie den detaillierten Inhalt des Tutorials „Beispielanalyse von Fensterfunktionen zu MySQL-Datenbankgrundlagen“. Weitere Informationen zu den Grundlagen von MySQL-Fensterfunktionen finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM!

Das könnte Sie auch interessieren:
  • Sehr praktisches Tutorial zur umfassenden Zusammenfassung der MySQL-Funktionen und detaillierten Beispielanalysen
  • MySQL praktische Fensterfunktion SQL-Analyse Klasse Testergebnisse und Lebenshaltungskosten Studenten
  • Details der MySQL-Berechnungsfunktion
  • MySQL-Beispiel zur Erläuterung von Einzelzeilenfunktionen und Zeichenmathematik, Datumsprozesssteuerung
  • Grundlegende MySQL-Grundlagen: Gruppierungsfunktion, Aggregatfunktion, Gruppierungsabfrage – ausführliche Erklärung
  • Eine kurze Einführung in MySQL-Funktionen
  • MySQL-Speicherung räumlicher Daten und Funktionen
  • Umfassende Zusammenfassung der MySQL-Funktionen

<<:  Tipps, um zu verhindern, dass andere meine Seite als meine Webseite speichern und kopieren

>>:  CSS zum Erreichen der ersten Zeile und ersten Spalte der Tabelle, fester und adaptiver Fensterbeispielcode

Artikel empfehlen

JavaScript implementiert den detaillierten Prozess der Stapelstruktur

Inhaltsverzeichnis 1. Die Stapelstruktur verstehe...

Implementierung von JavaScript zum Herunterladen und Hochladen verknüpfter Bilder

Da wir Bilder hochladen möchten, müssen wir zunäc...

VMware Workstation 12 installiert Ubuntu 14.04 (64 Bit)

1. Installationsumgebung Computermodell: Lenovo Y...

NestJs verwendet Mongoose zum Betrieb von MongoDB

Ich habe vor Kurzem angefangen, das NestJs-Framew...

Detaillierte Schritte zur Entwicklung von WeChat-Miniprogrammen mit Typescript

Auf die Vorteile von Typescript müssen wir nicht ...

Detaillierte Schritte zur Installation des NERDTree-Plugins in Vim unter Ubuntu

NERDTree ist ein Dateisystembrowser für Vim. Mit ...

js, um einen einfachen Lupeneffekt zu erzielen

In diesem Artikel wird der spezifische Code von j...

Einführung und Verwendungszusammenfassung der negativen Margenfunktion

Bereits in den CSS2-Empfehlungen von 1998 verschwa...

Auswahl der MySQL-Tabellentyp-Speicher-Engine

Inhaltsverzeichnis 1. Zeigen Sie die Speicher-Eng...

Einführung in den strikten Modus von JavaScript verwenden Sie strikt

Inhaltsverzeichnis 1. Übersicht 1.1 Was ist der s...