Inhaltsverzeichnis

Search

  1. Vorwort
  2. Umwandlungssprache
  3. Konstanten
  4. Operatoren
  5. Variablen
  6. Datumsangaben
  7. Funktionen

Referenzhandbuch für die Umwandlungssprache

Referenzhandbuch für die Umwandlungssprache

LAG

LAG

Gibt den Wert, der eine Offset-Anzahl von Zeilen darstellt, vor der aktuellen Zeile in einer Ausdrucksumwandlung zurück. Vergleichen Sie mithilfe dieser Funktion Werte in der aktuellen Zeile mit Werten in einer vorherigen Zeile, wenn Sie ein Zuordnung auf der Spark-Engine in einer Hadoop-Umgebung ausführen.
Ein lag-Wert wird vor der aktuellen Zeile in einem Datensatz angezeigt.
Wenn Sie LAG in einer Umwandlung verwenden, müssen Sie die Umwandlung für mehrfache Ansichten konfigurieren. Mit den Eigenschaften für mehrfache Ansichten wird angegeben, wie die Daten partitioniert und sortiert werden.

Syntax

LAG (
column_name
,
offset
,
default
)
In der folgenden Tabelle werden die Argumente für diesen Befehl beschrieben:
Argument
Erforderlich/
Optional
Beschreibung
column_name
Erforderlich
Die Zielspalte oder der Ausdruck, der von der Funktion verwendet wird.
Offset
Erforderlich
Ganzzahldatentyp. Die Anzahl der Zeilen vor der aktuellen Zeile, aus denen ein Wert abgerufen werden soll.
default
Optional
Der Standardwert, der zurückgegeben werden soll, wenn der Offset außerhalb der Begrenzungen der Partition oder Tabelle liegt. Standardwert ist NULL.

Rückgabewert

Der Datentyp des angegebenen
column_name
.
Default
, wenn der Rückgabewert außerhalb der Begrenzungen der angegebenen Partition liegt.
NULL, wenn
default
ausgelassen oder auf NULL gesetzt wird.

Beispiele

Der folgende Ausdruck gibt das Datum zurück, an dem der vorherige Auftrag erteilt wurde:
LAG ( ORDER_DATE, 1, NULL )
ORDER_DATE
ORDER_ID
RETURN VALUE
2017/09/25
1
NULL
2017/09/26
2
2017/09/25
2017/09/27
3
2017/09/26
2017/09/28
4
2017/09/27
2017/09/29
5
2017/09/28
2017/09/30
6
2017/09/29
Der lag-Wert der ersten Zeile liegt außerhalb der Partition, weshalb die Funktion den Standardwert NULL zurückgegeben hat.
Im folgenden Beispiel empfängt das Unternehmen GPS-Signale von Fahrzeugen, die eine Tour- und Ereignis-ID sowie einen Zeitstempel enthalten. Sie möchten die Zeitdifferenz zwischen den jeweiligen Signalen berechnen.
Der folgende Ausdruck berechnet die Zeitdifferenz zwischen der aktuellen und vorherigen Zeile für zwei verschiedene Touren:
DATE_DIFF( EVENT_TIME, LAG ( EVENT_TIME, 1, NULL ), 'ss' )
Sie partitionieren die Daten nach Tour-ID und sortieren sie nach Ereignis-ID.
TRIP_ID
EVENT_ID
EVENT_TIME
RETURN VALUE
101
1
2017-05-03 12:00:00
NULL
101
2
2017-05-03 12:00:34
34
101
3
2017-05-03 12:02:00
86
102
1
2017-05-03 12:00:00
NULL
102
2
2017-05-03 12:01:56
116
102
3
2017-05-03 12:02:00
4
Die lag-Werte der ersten und vierten Zeile liegen außerhalb der angegebenen Partition, weshalb die Funktion zwei NULL-Standardwerte zurückgegeben hat.