Influxdb 流入:在不同的群体中对相同的领域进行数学运算

Influxdb 流入:在不同的群体中对相同的领域进行数学运算,influxdb,chronograf,Influxdb,Chronograf,我已使用以下“模式”设置了XDB度量: 我正在尝试编写一个查询,该查询将根据时间戳对我的表进行分组,并获取两个不同标记的字段值之间的增量。如果我想得到标记“a”和标记“b”之间的增量,它将给出以下结果(请不要忽略标记“c”): 这是流入可以做的事情还是我使用了错误的工具 刚刚回答了我自己的问题。虽然其中一个明显的方法是执行自联接,但inflow不再支持联接。但是,我们可以使用以下格式的嵌套选择: SELECT MEAN(cost_a) - MEAN(cost_b) as delta_cost F

我已使用以下“模式”设置了XDB度量:

我正在尝试编写一个查询,该查询将根据时间戳对我的表进行分组,并获取两个不同标记的字段值之间的增量。如果我想得到标记“a”和标记“b”之间的增量,它将给出以下结果(请不要忽略标记“c”):


这是流入可以做的事情还是我使用了错误的工具

刚刚回答了我自己的问题。虽然其中一个明显的方法是执行自联接,但inflow不再支持联接。但是,我们可以使用以下格式的嵌套选择:

SELECT MEAN(cost_a) - MEAN(cost_b) as delta_cost
FROM
    (SELECT cost as cost_a, tag, tablename where tag='a'),
    (SELECT cost as cost_b, tag, tablename where tag='b')
GROUP BY time(60s)

由于我每60秒获取一次数据,并且我保证每60秒每个标签只有一个点,因此我可以使用
groupby
并毫无问题地从您的增量中获取
MEAN
,看起来您是按时间分组的,而不是按“type”标签分组的。请仔细检查您到底想要什么。@YuriG谢谢您指出,我确实尝试按时间戳分组,并为该时间戳组获取两个不同标记的字段值之间的增量。我更新了问题的细节,请让我知道它是否有意义。很抱歉让你失望,但你没有这样的保证,至少,这样。只需考虑在收集者/托运方可能出现抖动…但是,很容易将此保证变为可靠的:LAST()或其他选择器函数。谢谢!这帮我解决了:)
+----+-----------+------------+
| ts | type(tag) | delta_cost |
+----+-----------+------------+
|  1 | 'a'       | 10         |
|  2 | 'b'       |  6         |
+----+-----------+------------+
SELECT MEAN(cost_a) - MEAN(cost_b) as delta_cost
FROM
    (SELECT cost as cost_a, tag, tablename where tag='a'),
    (SELECT cost as cost_b, tag, tablename where tag='b')
GROUP BY time(60s)