In Oracle bezieht sich eine analytische Funktion auf Funktionen, die zur Berechnung eines Satzes von Zeilen verwendet werden. Analytische Funktionen werden hauptsächlich verwendet, um die verschiedenen Metriken wie Perzentile, Standardabweichungen usw. zu bestimmen.
In diesem Tutorial lernen wir, wie Sie eine der Oracle Lag -Funktionen verwenden, um aus der aktuellen Zeile in einem bestimmten Offset auf eine Zeile zuzugreifen.
Oracle lag () Funktion
Die Funktion von LAG () wird verwendet, um den Wert einer Zeile in einer Tabelle aus der aktuellen Zeile abzurufen. Zum Beispiel können Sie ihn verwenden, um den Wert aus fünf Zeilen aus Ihrer aktuellen Position zu erhalten. Sie können es verwenden, um die Berechnungen oder Vergleiche zwischen Werten über die Zeit durchzuführen.
Das Folgende zeigt die grundlegende Syntax der Funktion:
Lag (expr [, offset] [, Standard])Die Funktion akzeptiert die folgenden Parameter:
Oracle Lag () Funktion Beispiel
Dieses Beispiel zeigt, wie die Funktion LAG () verwendet wird.
Wählen Sie First_Name, last_name, Gehalt, Job_ID, Verzögerung (Gehalt) über (Bestellung nach Gehalt ASC)Ergebnis:
Wie Sie sehen können, enthält die Verzögerungssäule das Gehalt der Reihe dahinter. Wenn dahinter keine Zeile wie die erste Spalte steckt, gibt die Funktion null zurück.
Wir können dies vermeiden, indem wir den Standardparameter einstellen.
Wählen Sie First_Name, last_name, Gehalt, Verzögerung (Gehalt, 1, 0) über (bestellen nach Gehalts ASC) als vorherAusgang:
Wir können auch den Offset -Wert angeben, wie im Folgenden gezeigt:
Wählen Sie First_Name, last_name, Gehalt, Verzögerung (Gehalt, 5, 0) über (bestellen nach Gehalts ASC) als vorherIn diesem Fall sollte die Abfrage fünf Spalten dahinter wie folgt abrufen:
Um die LAG -Funktion mit einer Partition nach Klausel zu verwenden, können wir den folgenden Befehl ausführen:
Wählen Sie First_Name, last_name, job_id Gehalt, Verzögerung (Gehalt, 1, 0) über (Partition nach Job_id Order nach Gehalt ASC) als vorhabenErgebnis:
Abschluss
In diesem Beitrag haben wir besprochen, wie die Funktion Oracle Lag () verwendet wird, um die vorherigen Zeilen aus der aktuellen Position an einem gegebenen Versatz abzurufen.