【问题标题】:In Q, how do I get the rows for the last X minutes from a Kdb table?在 Q 中,如何从 Kdb 表中获取最后 X 分钟的行?
【发布时间】:2021-09-20 09:46:40
【问题描述】:

我有一张包含价格信息的表格。并构建一个前端功能,允许用户查看最后 X 分钟的所有价格,用户指定 X。

如何在 q 中查询这个?

【问题讨论】:

    标签: kdb


    【解决方案1】:

    假设你的表名为trades,而trades 表有一个时间列,你可以使用下面的函数来实现想要的输出:

    q){select from trades where time >= .z.n-`minute$x}
    

    【讨论】:

    • 谢谢,成功了。
    【解决方案2】:

    假设您的表名为table。你可以创建一个函数f,它接受一个参数x:你想从中选择的分钟数。

    q)f:{select price from table where time within (.z.p-`minute$x;.z.p)}
    

    然后,例如,要获取过去 15 分钟的价格信息,您会这样做:

    q)f[15]
    

    【讨论】:

    • 谢谢,这也有效
    猜你喜欢
    • 2020-09-19
    • 2021-12-31
    • 2016-05-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多