首页 > 解决方案 > 如何使用 msum 仅对 DolphinDB 中的正数求和

问题描述

我有一个列号,正数或负数,例如下表中的 Val 列;

msg = table(1..100 as id, rand(-100..100,100) as Val)

现在我想用长度为 10 的滚动窗口计算 Val 的移动总和,但只计算 Val 中的正数。类似于 select msum( if(val>0), 10) from msg。

标签: mysqlsqldatabasedolphindb

解决方案


使用函数iif将所有负数转换为零,然后用于msum计算滚动和。

msum(iif(val > 0, val, 0), 10)

推荐阅读