🏠 » T-SQL Funktionen » T-SQL Analytische Funktionen » T-SQL LAG Funktion

T-SQL LAG Funktion

Die T-SQL LAG-Funktion greift im gleichen Resultset auf Daten in einer vorherigen Zeile zurück, ohne dass ein SELF-JOIN benötigt wird.

Das ist nützlich, um Unterschiede zwischen Zeilen in einer Ergebnismenge zu vergleichen, beispielsweise um den Wert einer Zeile mit dem Wert der vorherigen Zeile zu vergleichen.

Die T-SQL LAG-Funktion kann in einer SELECT-Anweisung verwendet werden, um Werte in der aktuellen Zeile mit Werten in einer vorherigen Zeile zu vergleichen.

T-SQL LAG Funktion Syntax

Die T-SQL LAG Funktion kann folgendermaßen verwendet werden:

LAG (scalar_expression [,offset] [,default]) 
    OVER ( [ PARTITION BY partition_expression ] ORDER BY order_expression )

Folgende Parameter müssen in der Funktion eingesetzt werden:

  • scalar_expression: Die Tabelle, über die alle Kontextfilter entfernt werden, mit Ausnahme von Filtern auf den Spalten, die in nachfolgenden Argumenten angegeben sind.
  • offset (optional): Die Anzahl der Zeilen, die zurückgegangen wird. Standardwert ist 1 (also die vorherige Zeile).
  • default (optional): Ein Wert, der zurückgegeben wird, wenn keine vorherige Zeile vorhanden ist. Ohne Angabe wird zurückgegeben.
  • OVER: Definiert das Fenster der Zeilen, auf die LAG-Funktion angewendet wird. Optional kann nach bestimmten Werten gruppiert werden (mit PARTITION BY), und die Reihenfolge der Zeilen wird mit ORDER BY festgelegt.

Die T-SQL LAG Funktion wird verwendet, um Werte in der aktuellen Zeile mit Werten in einer vorherigen Zeile zu vergleichen.

T-SQL LAG Funktion Beispiel

Das folgende T-SQL LAG Funktion Beispiel veranschaulicht, wie die T-SQL Funktion eingesetzt werden kann:

SELECT 
    Jahr, 
    Umsatz, 
    LAG(Umsatz, 1, 0) OVER (ORDER BY Jahr) AS Vorjahres_Umsatz
FROM 
    Umsatz;

Die LAG Funktion greift auf den Umsatzwert der vorhergehenden Zeile in der Ergebnismenge zu, wobei der Offset-Wert 1 angibt, dass auf die unmittelbar vorherige Zeile verwiesen wird. Sollte keine vorhergehende Zeile vorhanden sein, wird der angegebene Standardwert, in diesem Fall 0, zurückgegeben.

Die OVER (ORDER BY Jahr)-Klausel bestimmt die Reihenfolge, in der die Zeilen in der Ergebnismenge verarbeitet werden, indem sie die Zeilen nach dem Wert der Spalte Jahr sortiert. Dadurch wird sichergestellt, dass die Funktion LAG die Werte in der richtigen zeitlichen Abfolge vergleicht, um präzise Rückschlüsse auf die vorhergehenden Werte ziehen zu können.

Die T-SQL LAG-Funktion ist hilfreich, um auf Werte früherer Zeilen zuzugreifen, was für Analysen wie Differenzberechnungen oder Vergleiche über Zeilen hinweg nützlich ist.

Weiterführende Artikel