在 Q 中,如何从 Kdb table 获取最后 X 分钟的行?
In Q, how do I get the rows for the last X minutes from a Kdb table?
我有一个 table 有价格信息。并构建一个前端功能,允许用户查看最近 X 分钟的所有价格,其中用户指定 X。
如何在q中查询这个?
假设您的 table 叫做 table
。您可以创建一个函数 f
,它接受一个参数 x
:您想要 select 从之前的分钟数。
q)f:{select price from table where time within (.z.p-`minute$x;.z.p)}
然后,例如要获取过去 15 分钟的价格信息,您可以这样做:
q)f[15]
假设您的 table 被命名为 trades
,并且 trades
table 有一个时间列,您可以使用以下函数来实现所需的输出:
q){select from trades where time >= .z.n-`minute$x}
我有一个 table 有价格信息。并构建一个前端功能,允许用户查看最近 X 分钟的所有价格,其中用户指定 X。
如何在q中查询这个?
假设您的 table 叫做 table
。您可以创建一个函数 f
,它接受一个参数 x
:您想要 select 从之前的分钟数。
q)f:{select price from table where time within (.z.p-`minute$x;.z.p)}
然后,例如要获取过去 15 分钟的价格信息,您可以这样做:
q)f[15]
假设您的 table 被命名为 trades
,并且 trades
table 有一个时间列,您可以使用以下函数来实现所需的输出:
q){select from trades where time >= .z.n-`minute$x}