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

Wertschätzung des dezenten und eleganten Webdesigns in Schwarz, Weiß und Grau

Unter den klassischen Farbkombinationen kann wohl...

Tutorial zur Verwendung des Multitail-Befehls unter Linux

MultiTail ist eine Software zum gleichzeitigen Üb...

Detaillierte Erklärung zur Verwendung von Teleport in Vue3

Inhaltsverzeichnis Zweck des Teleports So funktio...

Analyse des Prozesses der einfachen Bereitstellung von Nginx im Docker-Container

1. Stellen Sie den Nginx-Dienst im Container bere...

So verwenden Sie Cron-Jobs, um PHP regelmäßig unter Cpanel auszuführen

Öffnen Sie das cPanel-Verwaltungs-Backend. Unter ...

So rufen Sie das Kennwort für MySQL 8.0.22 auf dem Mac ab

Neueste Version von MySQL 8.0.22 zur Kennwortwied...

Analyse der Verwendung und des Prinzips der Docker Swarm-Clusterverwaltung

Schwarmclusterverwaltung Einführung Docker Swarm ...

Beispielcode des Spread-Operators und seiner Anwendung in JavaScript

Der Spread-Operator ermöglicht die Erweiterung ei...

So installieren Sie die Linux-Onlinesoftware gcc online

Befehle zur Linux-Onlineinstallation: yum install...

Natives JS zum Erzielen eines coolen Paging-Effekts

In diesem Artikel wird anhand eines Beispiels ein...

Detailliertes Installationstutorial für MySQL 5.7 unter CentOS 6 und 7

Für die Entwicklung benötigen Sie immer Daten. Al...

Warum sind die Bilder in mobilen Web-Apps nicht klar und sehr verschwommen?

Warum? Am einfachsten lässt es sich so ausdrücken:...

So installieren Sie schnell eine Tensorflow-Umgebung in Docker

Installieren Sie schnell die Tensorflow-Umgebung ...