【发布时间】:2013-05-22 18:54:20
【问题描述】:
由于 wavg 函数,在 kdb 中计算加权平均值很容易。如何计算两个连续行时间之间的延迟并将这些值用作 wavg 的权重参数?
类似:
`date`ts xasc select date,ts,mytw:(next ts - ts) wavg mycolumnval from pmd where date=2013.05.22
next 在查询中给出以下行列,但我不知道如何减去两个 ts 值并在wavg 中使用它们。
更新
解决方案是使用括号:((next ts) - ts)。请注意,我不能使用deltas[ts]。这会产生不同的权重:
08:15:19.811 00:00:00.000
08:15:19.811 00:00:00.001
08:15:19.812 00:00:00.014
08:15:19.826 00:00:07.305
08:15:27.131 NULL
这是deltas[ts]:
08:15:19.811 08:15:19.811
08:15:19.811 00:00:00.000
08:15:19.812 00:00:00.001
08:15:19.826 00:00:00.014
08:15:27.131 00:00:07.305
【问题讨论】:
-
您能举一个您期望的输出示例吗?同样在您的计算中, (next ts - ts) 将从右到左进行评估,因此它只是零列表中的下一个。你应该在这里使用增量。
标签: kdb