如何从存储在磁盘上的KDB表中有效地选择第一行或最后一行

时间:2015-05-31 13:22:18

标签: kdb

对于内存表,我可以使用子列表或使用语法来检索前x个,后x个元素。

如何有效地处理可能非常大的磁盘表?约束是我不想将所有数据从表缓存到内存以运行查询。

2 个答案:

答案 0 :(得分:1)

.Q.ind - 它将表和(long!)索引放入表中 - 并返回适当的行 http://code.kx.com/q/ref/dotq/#qind-partitioned-index

答案 1 :(得分:0)

我想你可以使用i列,它是历史上的行号(每个分区!)。

所以第一行是select from trade where date=first date, i = 0
我想最后一行是select from trade where date=last date, i=max i

这假设正常按日期分区。如果您只有一个非分区表,那么select from trade where i=0可能没问题