BigQuery: 分析関数を使って移動平均を算出する
February 20, 2021
移動平均とは? #
BigQueryの分析関数 #
行をグルーピングして、そのグループに対して値を計算する。グループを指定するのが OVER
句。
WITH dates AS (
SELECT date, (MOD(offset, 3) + 1) * (MOD(offset, 5) + 1) + (MOD(offset, 7) + 1) AS num
FROM UNNEST(GENERATE_DATE_ARRAY('2021-02-01', '2021-02-28')) AS date WITH OFFSET
)
SELECT
date,
num,
AVG(num) OVER (ROWS BETWEEN 2 PRECEDING AND CURRENT ROW) AS num_sma
FROM dates
ORDER BY date
現在の行 + 前2行(3行分)の移動平均が num_sma
で出力される。