2017-04-04 136 views
9

我有一個充滿了值的Influx數據庫。這些值由Grafana提供。我需要的是取決於所選時間間隔的實際值。使用InfluxDB子查詢來減去值

目前,我有單個指標以下查詢:

SELECT mean("value") FROM "table" WHERE $timeFilter GROUP BY time($interval) fill(null) 

我想是從該區間減去最低值,所以只能從區間內計數的值。所以圖需要從零開始。要從間隔獲得的最低值我用:

SELECT min("value") FROM "table" WHERE $timeFilter 

所以我想結合這兩個(一個子查詢)像這應該工作:

SELECT mean("value") - (SELECT min("value") FROM "table" WHERE $timeFilter) FROM "table" WHERE $timeFilter GROUP BY time($interval) fill(null) 

不幸的是,這並不工作。該查詢不被接受爲子查詢。

+0

您使用的是什麼版本的Influx?原則上1.2應該可以做到這樣的事情。 – Pigueiras

+0

我正在使用InfluxDB shell版本:1.2.0。 我知道subquerys是可能的,但只要文檔只在'FROM'部分。該文檔沒有給出其他類型的子查詢的例子。 – Nhz

+2

你完全正確,看起來不可能。我認爲在一些黑客使用grafana進行模板化,但它不起作用,因爲它顯示時間戳而不是'min(「count」)'。我猜你可以得到的最好的結果是計算最小值和減去從查詢中得到的常數:( – Pigueiras

回答

0

@Pigueiras:

我面對知道我的設置是在運行的InfluxDB的版本困難。實際上,整個工作流程是由我以前的同事開發的,包括InfluxDB(用於存儲時間序列數據)+ Grafana(查詢&可視化前端數據)。

然而,我發現我的Grafana是v4.5.2

我也想在Grafana使用子查詢如下:

InfluxDB Subqueries in Grafana FAILS with "error parsing query: GROUP BY requires at least one aggregate function"

我不知道,如果它失敗的堂妹版本不匹配或其他。

您的支持,將不勝感激。

Bala