Я новичок в 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
он имеет множество price
в разных tp_time
. Таким образом, таблица 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.
Может ли кто-нибудь дать мне помощь по этим вопросам? Большое спасибо!