Welcome to WuJiGu Developer Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
395 views
in Technique[技术] by (71.8m points)

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

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

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


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

可以使用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

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to WuJiGu Developer Q&A Community for programmer and developer-Open, Learning and Share
...