如何对表中每一行获取bid_price大于某个阈值对应的bid_volume之和

如下图,我有一张表:

attachments-2021-07-223pBH0o60e2c7944bcb4.png

上表有字段bid_price1,bid_price2,bid_price3,bid_price4,bid_price5和对应的bid_volume1,bid_volume2,bid_volume3,bid_volume4,bid_volume5。

首先我定义一个price,比如271.3,找到bid_price大于271.3的index,比如第一行中的bid_price1,bid_price2,bid_price3,bid_price4,那么index就是1 ,2,3,4.

所以我最后返回的是sum(bid_volume1,bid_volume2,bid_volume3,bid_volume4),每一行都会返回一个sum值,然后用update set更新上去。



请先 登录 后评论

1 个回答

wale

请用mask函数实现,示例如下:

t=table(1 2 3 as ap1, 1 2 3 as ap2, 1 2 3 as av1, 1 2 3 as av2)
p=1
update t set sumAskVol = mask(matrix(av1, av2), matrix(ap1, ap2) <= p).rowSum()
请先 登录 后评论