Kategorie: Fensterfunktionen
LAG
LAG liest den Wert einer früheren Zeile derselben Partition, ohne die Tabelle mit sich selbst zu joinen.
Syntax
LAG(expression [, offset [, default]]) OVER (PARTITION BY column ORDER BY column)Besonderheiten in AMC
- Der Offset ist standardmäßig 1, der Standardwert außerhalb der Partition NULL. Eine OVER-Klausel mit ORDER BY ist Pflicht.
- LEAD funktioniert gleich, schaut aber auf die folgende Zeile.
Beispiel
Veränderung der Impressionen gegenüber dem Vortag je Kampagne.
WITH daily AS (
SELECT
campaign,
DATE_TRUNC('DAY', event_dt_utc) AS day,
SUM(impressions) AS impressions
FROM
sponsored_ads_traffic
GROUP BY
1,
2
)
SELECT
campaign,
day,
impressions,
impressions - LAG(impressions, 1, 0) OVER (PARTITION BY campaign ORDER BY day) AS change_vs_previous_day
FROM
daily Gegen das AMC-Schema geprüft, nicht auf einer AMC-Instanz ausgeführt.