【发布时间】:2014-11-12 23:58:02
【问题描述】:
我从表中检索日期: my_date:从表中选择最大日期
现在我想这样使用 my_date : 从 some_other_table 中选择日期范围(my_date;now) 但是 my_date 有类型表 - 我如何提取日期作为最后一个查询中使用的值?
【问题讨论】:
标签: kdb
我从表中检索日期: my_date:从表中选择最大日期
现在我想这样使用 my_date : 从 some_other_table 中选择日期范围(my_date;now) 但是 my_date 有类型表 - 我如何提取日期作为最后一个查询中使用的值?
【问题讨论】:
标签: kdb
exec 将列提取为向量。对于您的示例,您可以将max 聚合器带出,使其成为可以与within 一起使用的原子,如下所示:
select from some_other_table where date within(max exec date from table;now)
同样,如果在内存中你可以使用像字典一样的表格
max table`date
【讨论】:
你应该使用'exec'。 'exec' 以各种形式返回数据,如单值、列表、字典等,具体取决于数据的使用方式。
q) my_date:exec max date from table
这将返回最大日期作为一个值。
但是下面的调用:
q) exec date from table
这将重新生成一个包含表中所有日期值的列表。
【讨论】:
两个场景: 1.如果查询的是简单表,直接索引应该是最快的
从 tb2 中选择日期在 (max tb1`date;.z.D)
select from tb2 where date within (max exec from select date from tb1;.z.D)
【讨论】: