首页 > 解决方案 > 计算计算机(标签),因为它们在 InfluxDB 中的状态(标签)=“关闭”

问题描述

我有这样的架构。

在此处输入图像描述

如何在此处准确计算当前开启或关闭的计算机数量?

当我查询关闭计算机时,预期结果应该是 0。但我得到一个 1。因为它考虑了 DELL1 表中的第二行。

我的查询是

SELECT count("count") FROM (SELECT count("value") FROM "meas" WHERE ("status" = 'OFF') AND $timeFilter GROUP BY "computer")

标签: grafanainfluxdb

解决方案


status在计算关闭/开启计算机的数量时,您只需考虑最新的计算机。

您可以使用 InfluDB 的LAST函数来获取每台计算机的最后报告状态。此查询的结果可以嵌套在子查询中,并根据所需状态进行过滤。

 SELECT count('last_status') FROM (
                     SELECT last("status") FROM "meas" WHERE $timeFilter GROUP BY "computer"
   
   ) WHERE last_status = 'OFF' GROUP BY "computer"

推荐阅读