The result of each moving call must be a scalar

我用moving做标准化,代码如下:

```

update aa_copy_1 set p_score = moving(zscore,p_1,10) context by secu_code

``

执行时提示The result of each moving call must be a scalar,但是p_1的确是数值标量啊

attachments-2021-06-OHXEIyXu60c6112aba948.png



请先 登录 后评论

1 个回答

wale

zscore不是一个聚合运算,它返回一个等长的向量,

你把moving(zscore,p_1,10)改成 (x - mavg(x, 10))/mstd(x, 10)就可以了

相比下面用moving的方法,可能有30倍的性能差距

```

update aa_copy_1 set p_score = (p_1-moving(mean,p_1,10))/moving(std,p_1,10) context by secu_code

```

请先 登录 后评论