【发布时间】:2018-06-27 21:55:35
【问题描述】:
我是 kdb/q 的新手。以下是我的问题。真心希望kdb高手能帮帮我。
我有两张桌子。表t1有两个属性:tp_time和id,看起来像:
tp_time id
------------------------------
2018.06.25T00:07:15.822 1
2018.06.25T00:07:45.823 3
2018.06.25T00:09:01.963 8
...
...
表t2 具有三个属性:tp_time、id 和price。
对于每个id,它在不同的tp_time 上有很多price。所以t2 的表确实很大,如下所示:
tp_time id price
----------------------------------------
2018.06.25T00:05:99.999 1 10.87
2018.06.25T00:06:05.823 1 10.88
2018.06.25T00:06:18.999 1 10.88
...
...
2018.06.25T17:39:20.999 1 10.99
2018.06.25T17:39:23.999 1 10.99
2018.06.25T17:39:24.999 1 10.99
...
...
2018.06.25T01:39:39.999 2 10.99
2018.06.25T01:39:41.999 2 10.99
2018.06.25T01:39:45.999 2 10.99
...
...
我尝试对表t1 中的每一行,找到其最近时间的价格和大约5 秒后的价格。比如t1表的第一行:
2018.06.25T00:07:15.822 1
最近时间的价格是10.87,大约5秒后的价格是10.88。我预期的输出表如下所示:
tp_time id price_1 price_2
----------------------------------------------------
2018.06.25T00:07:15.822 1 10.87 10.88
2018.06.25T00:07:45.823 3 SOME_PRICE SOME_PRICE
2018.06.25T00:09:01.963 8 SOME_PRICE SOME_PRICE
...
...
问题是我无法加入t1 和t2,因为表t2 太大了,我会杀死服务器。我尝试过类似...where tp_time within(time1, time2) 的东西。但我不确定如何处理 time1 和 time2 变量。
有人可以帮我解决这个问题吗?非常感谢!
【问题讨论】:
标签: kdb