Ich versuche, eine 28 Tage dauernde Summe in BigQuery mit der LAG-Funktion zu berechnen.BigQuery SQL für 28-Tage-Gleitfenster-Aggregat (ohne 28 Zeilen SQL schreiben)
Die Top-Antwort auf diese Frage
Bigquery SQL for sliding window aggregate
von Felipe Hoffa zeigt an, dass, dass Sie die LAG-Funktion nutzen können. Ein Beispiel dafür wäre:
SELECT
spend + spend_lagged_1day + spend_lagged_2day + spend_lagged_3day + ... + spend_lagged_27day as spend_28_day_sum,
user,
date
FROM (
SELECT spend,
LAG(spend, 1) OVER (PARTITION BY user ORDER BY date) spend_lagged_1day,
LAG(spend, 2) OVER (PARTITION BY user ORDER BY date) spend_lagged_2day,
LAG(spend, 3) OVER (PARTITION BY user ORDER BY date) spend_lagged_3day,
...
LAG(spend, 28) OVER (PARTITION BY user ORDER BY date) spend_lagged_day,
user,
date
FROM user_spend
)
Gibt es eine Möglichkeit, dies zu tun, ohne 28 Zeilen SQL schreiben zu müssen!