2017-09-05 86 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子句