【问题标题】:How to retrieve date from table in KDB as value如何从 KDB 中的表中检索日期作为值
【发布时间】:2014-11-12 23:58:02
【问题描述】:

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

现在我想这样使用 my_date : 从 some_other_table 中选择日期范围(my_date;now) 但是 my_date 有类型表 - 我如何提取日期作为最后一个查询中使用的值?

【问题讨论】:

    标签: kdb


    【解决方案1】:

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

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

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

    max table`date
    

    【讨论】:

      【解决方案2】:

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

           q) my_date:exec max date from table
      

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

      但是下面的调用:

           q) exec date from table
      

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

      【讨论】:

        【解决方案3】:

        两个场景: 1.如果查询的是简单表,直接索引应该是最快的

        从 tb2 中选择日期在 (max tb1`date;.z.D)

        1. 如果要查询展开/分区表,则不能使用索引,因此需要执行间接执行:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-07-10
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多