Я пытаюсь вычислить 28-дневную движущуюся сумму в BigQuery с использованием функции LAG.BigQuery SQL для 28-дневного скользящего оконного агрегата (без записи 28 строк SQL)
Верхний ответ на этот вопрос
Bigquery SQL for sliding window aggregate
от Фелипе Хоффа указывает на то, что, что вы можете использовать функцию LAG. Примером этого может служить:
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
)
Есть ли способ сделать это, не выписывая 28 строк SQL!