【发布时间】:2017-08-29 09:46:44
【问题描述】:
我有一个 Influx 数据库,其中充满了值。这些值由 Grafana 提供。我需要的是根据所选时间间隔获取实际值。
目前我对单个指标有以下查询:
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)
不幸的是,这不起作用。该查询不被接受为子查询。
【问题讨论】:
-
您使用的是什么版本的 Influx?原则上 1.2 应该可以做这样的事情。
-
我正在使用 InfluxDB shell 版本:1.2.0。我知道子查询是可能的,但就文档而言,仅在“FROM”部分中。该文档没有给出其他类型子查询的示例。
-
你说的完全正确,看起来不可能。我想在一些 hack 中使用 grafana 进行模板化,但它不起作用,因为它显示时间戳而不是
min("count")。我想你能得到的最好的方法是计算最小值并从查询中减去常数:( -
感谢您的确认。 “减去常数”是什么意思?您能解释一下这是如何工作的吗?
-
我的意思是:
SELECT mean("value") - 123 FROM ...