使用CASE或IF语句查询InfluxDB?

时间:2019-04-23 13:51:34

标签: grafana influxdb influxql chronograf

我正在从philes色相桥中收集指标并将其放入InfluxDB中。我希望能够在仪表板上显示其中一些指标。

基本查询如下:

SELECT mean("state.bri") AS "mean_state.bri" FROM "telegraf_hue"."autogen"."hue" WHERE time > :dashboardTime: AND "lamp"='Couch' GROUP BY time(:interval:) FILL(null)

这将返回一个漂亮的图形,显示光线的亮度级别。

Basic Query Results

此查询的问题在于实际上并不是所有时间都在点亮。即使关闭,色相桥也会返回最后的亮度级别。

我可以通过检查"state.on"的{​​{1}}或true值来查看其是否开启。

false

这仅返回点亮灯的点。

Query where light is on results

我想做类似SELECT mean("state.bri") AS "mean_state.bri" FROM "telegraf_hue"."autogen"."hue" WHERE "state.on" = true AND time > :dashboardTime: AND "lamp"='Couch' GROUP BY time(:interval:) FILL(null) 语句的事情,例如MySQL:

CASE

这不起作用。它失败并显示:

SELECT CASE WHEN "state.on" = true THEN mean("state.bri") ELSE 0 END FROM "telegraf_hue"."autogen"."hue" WHERE time > :dashboardTime: AND "lamp"='Couch' GROUP BY time(:interval:) FILL(null)

如何使用InfluxDB完成类似的工作?最终,如果需要的话,我将在Grafana中构建仪表板。

0 个答案:

没有答案