用context by分组后,如何获取每组中除top 1外的所有行

如下图所示,name为a的value有[1,2,3,4],name为b的value有[2,3,4,5],我context by name后,我要得到每组内除value最小外的其他所有值,即a的[2,3,4],b的[3,4,5]。

attachments-2021-05-FkA7cYnf60a4ad5936493.png

请问在DolphinDB database中有什么简单的方法?

请先 登录 后评论

1 个回答

Juntao Wang

DolphinDB中context by可以跟having子句搭配使用。如果过滤条件返回一个vector,那么返回值为true的行将被保留。如果过滤条件返回一个scalar,如果返回true,这个组所有行都被保留,如果返回false,这个组所有行都将被过滤掉。这个场景中只保留大于最小值的行:value > value.min()

t = table(1 2 3 4 2 3 4 5 as value, `a`a`a`a`b`b`b`b as name)
select * from t context by name having value > value.min()


请先 登录 后评论