我知道Big Query中有一個AVG函數,並且有窗口函數可以將上一個值或下一個值向上或向下移動一行,但是有沒有任何函數可以讓您在指定的時間間隔內平均?比如我想這麼像下面這樣:有沒有辦法在Big Query中進行滾動平均?
SELECT
city
AVG(temperature) OVER(PARTITION BY city, INTERVAL day,14, ORDER BY day) as rolling_avg_14_days,
AVG(temperature) OVER(PARTITION BY city, INTERVAL day,30, ORDER BY day) as rolling_avg_30_days,
WHERE
city IN ("Los Angeles","Chicago","Sun Prairie","Sunnyvale")
AND year BETWEEN 1900 AND 2013
我想要做的滾動平均值計算,讓我來指定一個範圍值超過做一個聚合函數,什麼價值按順序排列。平均函數將採用當前的日溫和前13天(或之前的29天)來計算和平均。今天這可能嗎?我知道如果我在SELECT語句中放置13個LAG/OVER字段,然後平均所有這些字段的結果,我可以做類似這樣的事情,但這是很大的開銷。
我確實找到了一個[上一篇文章](http://stackoverflow.com/questions/12763404/bigquery-moving-average)fr om約旦關於使用JOIN來產生滾動平均值。我嘗試過使用這種邏輯,它的效果很好,但是我想知道是否在開發中有一個窗口函數會使邏輯更簡單一些。 –