2017-09-05 580 views
0

我有以下问题: 我需要计算一些任意ID是相等的连续点之间的差异。以下内容:InfluxDB混合agregation函数与非聚合字段/值

SELECT difference(value_field) FROM mesurementName WHERE "IdField" = '10'

作品,返回与IdField BUT IdField每个连续点之间的差值丢失(仅time被传播到查询的结果)。在我的情况下,time不是唯一的(即,测量可能包含许多点,但具有相同的timestamp,但不同的IdField)。所以,我想:

SELECT difference(value_field), IdField FROM mesurementName WHERE "IdField" = '10'

这将产生: error parsing query: mixing aggregate and non-aggregate queries is not supported!!

我的下一次尝试使用子查询:

SELECT IdField, diff 
FROM (
    SELECT 
     difference(flow_val) as diff 
    FROM 
     mesurementA 
    WHERE "IdField" = '10' 
) 

导致在IdField总是null值。

我想问你的帮助或建议如何解决问题。顺便说一句,我们使用InfluxDB 1.3,这是不支持JOIN

回答

0

若有人要坚持,因为我是,那么解决方案如下:

SELECT difference(value_field) FROM mesurementName GROUP BY "IdField" 

以上某种程度上暗示加“IdField”导致系列并传播到INTO子句