我有两个不同的系统将数据推送到 kdb 表中。这些是由价格推动的。我想比较产生的值,以便最终标记出较大的差异。不过,我对 kdb 很陌生,并且发现甚至很难制定出起点查询。
最终,我想花一个时间段(可能是一分钟)在这个时间段内为每个系统找到一行,其中驱动价格相同,并比较派生值。
不过,对我来说,一个好的起点是了解如何在一个时间段内为每个系统获取第一行并比较/加入..
谢谢。
简化的示例数据
例子: -
System | Time | driver | result1 | result2
systemA.instrument1| 11:59:59| 101.4 | 3.4 | 4.6
systemA.instrument1| 12:00:01| 101.5 | 3.8 | 4.8
systemA.instrument1| 12:00:02| 101.6 | 3.3 | 2.3
systemA.instrument2| 12:00:02| 106.6 | 11.1 | 11.3
systemA.instrument1| 12:00:05| 101.7 | 3.9 | 5.6
systemB.instrument1| 12:00:09| 101.1 | 3.2 | 7.8
systemB.instrument1| 12:00:14| 101.2 | 3.9 | 3.4
systemB.instrument1| 12:00:17| 101.3 | 3.1 | 8.9
systemB.instrument2| 12:00:19| 106.5 | 11.2 | 11.4
systemB.instrument1| 12:00:58| 101.7 | 3.9 | 9.3
systemB.instrument1| 12:00:59| 101.7 | 3.3 | 3.4
systemB.instrument1| 12:01:03| 101.4 | 3.1 | 5.6
我只想要 12:00:00 - 12:00:59 的数据
SystemA 和 SystemB 仪器 1 之间唯一匹配的驱动程序是 101.7。我想要么被使用,要么显示结果之间的差异。对于instrument2,驱动程序永远不会匹配,所以我想使用系统之间最接近的驱动程序价格。
results | driver | driver diff | result1diff | result2diff
instrument1 | 101.7 | 0 | 0 | 3.7
instrument2 | | 0.1 | 0.1 | 0.1