gpt4 book ai didi

kdb - 如何在 kdb where 查询中使用多个参数?

转载 作者:行者123 更新时间:2023-12-01 06:33:44 24 4
gpt4 key购买 nike

我想在接下来的 5、10、30 分钟等内从表中选择最大元素。
我怀疑在 where 子句中使用多个元素是不可能的。
使用两者正常 <</:正在失败。我的代码/查询如下:

`select max price from dat where time</: (09:05:00; 09:10:00; 09:30:00)`

任何想法我在这里做错了什么?
这个想法是在该行的下一个 5、10、30 分钟内获得每一行的最高价格,而不仅仅是整个表中的 3 个最高价格。
select max price from dat where time</: time+\:(5 10 30)

这行不通,但应该给出总体思路。

为了进一步澄清,我想从表的每一行的 time[i] 计算 5、10、30 分钟间隔内的最高价格。因此,对于 x+5、x+10、x+30 分钟内的每个表格行的最高价格,其中 x 是该行中的时间条目。

最佳答案

你可以尝试这样的事情:

select c1:max price[where time <09:05:00],c2:max price[where time <09:10:00],c3:max price from dat where time< 09:30:00

您可以随意设置此查询。所以如果你有一个时间列表, l:09:05:00 09:10:00 09:15:00 09:20:00 ... 你可以使用上面查询的函数形式创建一个函数来工作l 的不同长度,例如:
q)f:{[t]?[dat;enlist (<;`time;max t);0b;(`$"c",/:string til count t)!flip (max;flip (`price;flip (where;((<),/:`time,/:t))))]}
q)f l

您可以扩展 f 以采用不同的函数而不是 max,为不同的表工作等。

关于kdb - 如何在 kdb where 查询中使用多个参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17229535/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com