Oracle Lag -Funktion

Oracle Lag -Funktion

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])
ÜBER (
[query_partition_clause]
order_by_clause
)

Die Funktion akzeptiert die folgenden Parameter:

  1. Expr - Dies definiert den Ausdruck, der gegen den angegebenen Zeilenwert am Offset -Parameter bewertet wird.
  2. Offset - Es legt die Anzahl der Zeilen fest, die Sie aus der aktuellen Zeile rückwärts gehen möchten. Standardmäßig holt die Funktion die Zeile, die sich hinter Ihrem aktuellen befindet.
  3. Standard - Die Funktion kann einen Standardwert zurückgeben, wenn sie über den Umfang des angegebenen Versatzes anstelle eines Nullwerts hinausgeht.
  4. Query_partition_clause - Es gibt die Partition per Klausel an, um die Zeilen in verschiedene Gruppen zu organisieren.
  5. Order_by_clause - Es setzt die Reihenfolge für die Zeilen.

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)
von Mitarbeitern EMP;

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 vorher
von Mitarbeitern EMP;

Ausgang:

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 vorher
von Mitarbeitern EMP;

In 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 vorhaben
von Mitarbeitern EMP;

Ergebnis:

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.