Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

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

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


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

1 Answer

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

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share

548k questions

547k answers

4 comments

86.3k users

...