我在 BigQuery/SQL 中的移动平均线遇到问题,我有表 'SCORES',我需要在使用用户对数据进行分组时制作 30 天移动平均线,问题是我的日期不是连续的,例如有差距在里面。
以下是我当前的代码:
SELECT user, date,
AVG(score) OVER (PARTITION BY user ORDER BY date)
FROM SCORES;
我不知道如何将日期限制添加到该行中,或者这是否可能。
我当前的表看起来像这样,但当然有更多的用户:
user date score
AA 13/02/2018 2.00
AA 15/02/2018 3.00
AA 17/02/2018 4.00
AA 01/03/2018 5.00
AA 28/03/2018 6.00
然后我需要它变成这样:
user date score 30D Avg
AA 13/02/2018 2.00 2.00
AA 15/02/2018 3.00 2.50
AA 17/02/2018 4.00 3.00
AA 01/03/2018 5.00 3.50
AA 28/03/2018 6.00 5.50
在最后一行中,它只是向后测量一个,因为日期(最多向后 30D)有没有办法在 SQL 中实现这个,或者我要求太多了?