在bigquery的整个字段上运行javascript udf

nfg76nw0  于 2021-07-26  发布在  Java
关注(0)|答案(0)|浏览(232)

我想做一个滚动平均的一个领域与窗口的不同长度取决于其他特征的数据。这排除了sql窗口函数。我想我能做的就是编写一个javascript自定义项,用一个可变大小的窗口来计算滚动平均值。但是,滚动窗口需要窗口大小字段中的值。最好的办法是什么?或者我根本不需要javascript?
示例:我有一个表somedata:

Day Value

1   3.5
2   5
3   7
4   10
5   12
.   .
.   .
.   .
100 15

我想用一个大小可变的窗口来计算滚动平均值。所以当x=2时,我的预期结果是:

Rolling Average 
    3.5 
    4.25
    6
    8.5
    11
    .
    .
    .

更新:
如果我用一个固定的数字,比如2,而不是一个变量x,我就可以用一个窗口函数。问题是,我希望数字有所不同,取决于例如天数。假设x的定义是

(CASE WHEN MAX(day) > 99 THEN 2 ELSE 3 END) AS x

我现在意识到这个问题已经在这里得到了回答。
我能做的就是:

(CASE WHEN MAX(day) > 99 THEN AVG(value) OVER(ORDER BY day RANGE   BETWEEN 1 PRECEDING AND CURRENT ROW) 
ELSE AVG(value) OVER(ORDER BY day RANGE BETWEEN 2 PRECEDING AND CURRENT ROW) END)
 AS rolling_average

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题