两个表window join之后各个window内某一列的top5个值之和?

我的需求是红框里的这个值计算方式:window是蓝框选中的6个值,红框里是这6个值当中最大的5个值,这五个值求和是要的结果。
image

t1 = table(`A`A`B as sym, 09:56:06 09:56:07 09:56:06 as time, 10.6 10.7 20.6 as price)

t2 = table(take(`A,10) join take(`B,10) as sym, take(09:56:00+1..10,20) as time, (10+(1..10)\10-0.05) join (20+(1..10)\10-0.05) as bid, (10+(1..10)\10+0.05) join (20+(1..10)\10+0.05) as offer, take(100 300 800 200 600, 20) as volume);

wj(t1, t2, -5:0, sum of top 5 max(bid), `sym`time)

我应用的是DolphinDB软件。

阅读 2.1k
2 个回答

可能需要自己写一个算法,思路是:内部一个N长度的sorted array,滚动的插入(插入排序快速算法应该很多了),滚动的做前/后M的运算。

滑动窗口计算:6个值求和,再减去6个中最小那个。

推荐问题
logo
101 新手上路
子站问答
访问
宣传栏