In diesem Tutorial konzentrieren wir uns auf die Verwendung einer der MySQL -Funktionen: lag (). Es handelt sich um eine Fensterfunktion, mit der Sie den Wert früherer Zeilen aus der aktuellen Zeile innerhalb desselben Ergebnissatzes zugreifen und abrufen können.
Grundlegende Syntax
Die allgemeine Syntax für die Verwendung von MySQL LAG () -Funktion lautet:
Verzögerung (Ausdruck, OffsetValue, defaultvar) über (Nehmen wir uns einen Moment Zeit, um einige der Parameter in der Funktionssyntax von LAG () zu erklären.
Sie sind wie folgt:
Ausdruck: Dies ist der Wert, der von der Funktion aus der Zeile zurückgegeben wird, die die aktuelle Zeile durch den angegebenen Offset -Wert leitet.
OffsetValue: Dieser Wert repräsentiert die Anzahl der Zeilen, die vor der aktuellen Zeile vorgehen, um den Wert zu erhalten. Dieser Wert muss 0 oder ein Wert höher als 0 sein.
NOTIZ: Der Wert von 0 repräsentiert die aktuelle Zeile.
Standardvar: Dieser Wert wird von der Funktion als Standardwert zurückgegeben, wenn keine vorhergehende Zeile vorliegt. Wenn der Standardwert im Funktionsparameter nicht definiert ist und keine vorhergehende Zeile vorhanden ist, gibt die Funktion einen Nullwert zurück.
Partition von: Die Partition nach Klausel teilt die Zeilen in einem logischen Partitionssatz auf. Die Verzögerungsfunktion wird dann auf die geteilten Partitionen angewendet.
SORTIEREN NACH: Dieser Wert gibt wie üblich die Reihenfolge der Zeilen in den verfügbaren Partitionen an.
Beispiel Anwendungsfälle
Sehen wir uns beispielhaften Anwendungsfällen der LAG () -Funktion an, um zu verstehen, wie sie funktioniert. Erstellen Sie zunächst eine Beispieldatenbank namens Sample_DB
Datenbank fallen, wenn existiert sample_database;Jetzt, da wir eine Beispieldatenbank haben, können wir fortfahren und veranschaulichen, wie man mit der MySQL -Lag -Funktion arbeitet.
Beispiel 1: LAG -Funktion ohne Standardwert
Betrachten Sie das nachstehende Beispiel, das die LAG.
Sobald wir die obige Abfrage ausgeführt haben, erhalten wir eine neue Spalte Poth_date, die den vorherigen Wert der Zeile wie angegeben mit einem Offset -Wert von 1 enthält. Da es in der ersten Zeile keinen vorherigen Wert gibt, ist der Wert null.
Hinweis: Sie können den Standardwert angeben, wenn eine Zeile keinen vorherigen Wert hat.
Die Ausgabe ist wie unten gezeigt:
Beispiel 2: LAG -Funktion mit Standardwert
Sie können auch einen Standardwert für eine Zeile angeben, in der der vorherige Wert nicht vorhanden ist. In unserem Beispiel setzen wir den Standardwert im aktuellen Datum fest.
Hinweis: In diesem Beispiel setzen wir den Offset -Wert auch als 2 anstelle von 1 fest.
Betrachten Sie die folgende Abfrage:
Wählen Sie *, lag (einschreiben Sie_Date, 2, Curdate ()) over (Order by id asc) als vorheriges_date aus sample_database.Benutzer;Sobald wir die obige Abfrage ausgeführt haben, erhalten wir Werte mit einem Offset -Wert von zwei und dem aktuellen Datum als Standard für Nullwerte.
Die Ausgabe ist wie unten gezeigt:
Beispiel 3: Verzögerungsfunktion mit Partition von
Wir können die LAG () -Funktion mit der Partition nach Klausel verwenden. Diese Klausel gruppiert die Daten zuerst in verschiedene logische Untergruppen und wendet dann die LAG -Funktion auf die Partitionen an.
Lassen Sie uns die Daten in der Tabelle des Benutzers sehen. Betrachten Sie die folgende Frage:
In Benutzer einfügen (ID, Name, Punktzahl, Registration_Date)Nachdem wir eine Tabelle mit 10 Werten haben, können wir die Daten nach der Punktzahl verteilt und dann die LAG -Funktion anwenden.
Die obige Operation ist in der folgenden Abfrage dargestellt:
Wählen Sie *, LAG (einschreiben_date, 1, curdate ()) over (Partition nach Bewertungsreihenfolge nach ID ASC) als vorheriger_date aus sample_database.Benutzer;In der obigen Abfrage beginnen wir zunächst die Daten basierend auf der Punktzahl und wenden dann die LAG -Funktion mit einem Offset -Wert von 1 an. Wir haben auch den Standardwert als aktuelles Datum festgelegt. Das Ausgangsergebnis ist wie unten gezeigt:
Hinweis: Sie können auch beachten, dass die erste Zeile jeder Partition das aktuelle Datum enthält, was bedeutet, dass in der festgelegten Zeile kein vorheriger Wert vorhanden ist.
Abschluss
In diesem Tutorial wird besprochen, wie die Funktion LAG () funktioniert, um Werte der vorherigen Zeilen in der aktuellen Zeile zu erhalten.
Zusammenfassung:
Vielen Dank für das Lesen.