BigQuery SQL para agregado de janela deslizante de 28 dias (sem gravar 28 linhas de SQL)

Estou tentando calcular uma soma móvel de 28 dias no BigQuery usando a função LAG.

A melhor resposta para esta pergunta

Bigquery SQL para agregado de janela deslizante

de Felipe Hoffa indica que você pode usar a função LAG. Um exemplo disso seria:

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
)

Existe uma maneira de fazer isso sem precisar escrever 28 linhas de SQL!

questionAnswers(1)

yourAnswerToTheQuestion