有没有一种方法可以从带有KDB中整数列表的表中按索引选择

时间:2019-11-15 08:19:46

标签: kdb

这是每行中都有一系列整数的表:

t: flip (enlist `myColumn)!enlist (1 2 3 4 5;6 7 8 9 10;11 12 13 14 15)

如何使用select语句访问所有行的特定索引? 这就是我尝试过的:

select myColumn'[2] from t

因此,我期望的是带有

的表
myColumn
3
8
13

但是我收到语法错误。如何通过select stmt使用索引位置访问元素?

谢谢你

3 个答案:

答案 0 :(得分:3)

我想你想要的是

select myColumn:myColumn[;2] from t

列表中的位置由列的第二个索引给出。

答案 1 :(得分:2)

如果不需要表作为结果的替代方法:

q)@[t;`myColumn]
1  2  3  4  5
6  7  8  9  10
11 12 13 14 15
q)@[t;`myColumn][2]
11 12 13 14 15
q)@[t;`myColumn][;2]
3 8 13

您可以看到,在使用[2]时,它获取值的第三个列表(索引为2),而[;2]在每个单独的列表中获取第三个值,从而创建了第三列的值。

答案 2 :(得分:1)

您需要使用@进行索引。每行都是一个简单的向量,因此我们可以index-at

q)select myColumn@'2 from t
x
--
3
8
13