有一列有正有负的数,需要移动取14个数,对其正负数分别求和

如下图所示,有一列数num,有正有负,还有2列是pmsum和nmsum,分别是对num这列中正数的移动求和、负数的移动求和,移动窗口是14。
attachments-2021-06-7NJMUjy160c8435708d46.png

请问在dolphindb database中,有什么函数可简单地实现?

请先 登录 后评论

1 个回答

logger

可以使用msum函数对num这列做窗口为14的滑动求和计算。计算之前,对num这列做一些变换,譬如把负数变为0,或把正数变为0.

select *, msum(iif(num > 0, num, 0), 14) as pmsum, msum(iif(num < 0, num, 0), 14) as nmsum from t
请先 登录 后评论