我想在接下来的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)
这不起作用,但应该给出一般的想法 .
为了进一步说明,我想从表格的每一行的时间[i]开始以5,10,30分钟的间隔计算最高价格 . 因此,对于每个表格行最大价格在x 5,x 10,x 30分钟内,其中x是该行中的时间条目 .
3 回答
你可以尝试这样的事情:
您可以根据自己的喜好对此查询进行语法转换 . 所以如果你有一个时间列表,l:09:05:00 09:10:00 09:15:00 09:20:00 ...你可以使用上面查询的功能形式创建一个函数来工作不同长度的l,类似于:
您可以扩展f以使用不同的函数而不是max,适用于不同的表等 .
这可行,但需要很多时间 . 对于20k记录,大约20秒,太多了!任何使它更快的方法
这构造了一个步骤字典来将时间映射到您的桶:
你也许可以滥用wj:
如果你的所有桶都是相同的尺寸,它会更容易: