KDB选择其他查询结果中的x

时间:2017-07-11 07:32:34

标签: kdb

我有一个查询

top:flip select [10] Name from `Val xdesc select sum Val by Name from table

我希望根据该结果进行另一次查询过滤

select from table where Name in top

然而,这给了我一个类型错误。我也试过

select from table where {x in y}[Name; top]

但是会产生一个空表。有关如何做到这一点的任何建议吗?

1 个答案:

答案 0 :(得分:2)

in的第二个参数需要是列表类型,所以你可以这样做:

select from table where Name in exec Name from top

或:

select from table where Name in top[`Name]

您也可以将top作为一个列表开始。使用take运算符获取已排序表中的前10项:

top:10#(exec Name from `Val xdesc select sum Val by Name from table)

然后你就能做到:

select from table where Name in top