У меня есть таблицы, содержащие события, обозначенные ts, символом и другим символом, например столбцом. Временные метки неточны, и я пытаюсь сопоставить их с помощью wj, чтобы получить все возможные совпадения в пределах временного окна.
t1: ([] ts: 10:00:01.03 10:00:03.16 10:00:03.16; sym: `A`B`A; ex: `a`b`b; q: 100 200 200)
t2: ([] ts: 10:00:01.00 10:00:01.035 10:00:03.15 10:00:03.155 10:00:03.158 10:00:03.16 10:00:03.165; sym: `A`A`B`B`A`B`A; ex: `a`a`a`b`b`b`a; id: til 7)
wj[-00:00:00.01 00:00:00.1+\:t1`ts;`sym`ex`ts;t1;(t2;(::;`id))]
Однако, когда я сопоставляю их, кажется, что учитывается только временное окно, игнорируя шаблоны сопоставления на sym и ex. Здесь, например, оно соответствует второму событию с идентификатором события 3,4,5, где 4 имеет другой символ.
В чем здесь моя ошибка?
Из https://code.kx.com/q/ref/wj, q should be sorted `sym`time with `p# on sym
:
q)wj[-00:00:00.01 00:00:00.1+\:t1`ts;`sym`ex`ts;t1;(`sym`ts xasc t2;(::;`id))]
ts sym ex q id
---------------------------
10:00:01.030 A a 100 0 1
10:00:03.160 B b 200 3 5
10:00:03.160 A b 200 ,4