如何从KDB中的表中检索日期作为值

时间:2014-11-12 23:58:03

标签: kdb

我从表中检索日期:        my_date:从表中选择最大日期

现在我想以这种方式使用my_date:        从some_other_table中选择日期(my_date; now) 但my_date有类型表 - 我如何提取日期作为在上一个查询中使用的值?

3 个答案:

答案 0 :(得分:5)

exec将列提取为向量。对于您的示例,您可以将max聚合器带出来,使其成为一个与within一起使用的原子,如下所示:

select from some_other_table where date within(max exec date from table;now)

同样,如果在内存中你可以使用像字典一样的表

max table`date

答案 1 :(得分:2)

你应该使用' exec'。 ' EXEC'以单个值,列表,字典等各种形式返回数据,具体取决于它的使用方式。

     q) my_date:exec max date from table

这会将最大日期作为值返回。

但是在电话之下:

     q) exec date from table

这将重新生成一个列表,该列表将包含表格中的所有日期值。

答案 2 :(得分:0)

两个程序: 1.如果要查询简单表,直接索引应该最快

从tb2中选择日期(最大tb1`date; .z.D)以内的日期

  1. 如果要查询已扩展/分区表,则无法使用索引,因此需要执行间接exec:

select from tb2 where date within (max exec from select date from tb1;.z.D)