InfluxDB - 查询每个现有标签的最后一个值的最大值

InfluxDB - Query the MAX of last values for every existing tag

这是我的数据库中的一个测量示例:

time                category      VM       observation   severity
----                --------      ---      -----------   --------
1434067460000000000 availability  VM2      cpu           1
1434067470000000000 availability  VM2      memory        3
1434067480000000000 availability  VM1      memory        2
1434067490000000000 treacability  VM1      filesystem    1

我想查询给定 VM 的类别的当前状态,类别的状态是该给定类别的所有不同现有观察结果的最后严重性的最大值。 (例如,对于此处 VM2 的可用性,它是最后一次 cpu 观察和最后一次内存观察的严重性的最大值)。

我可以通过这样的查询获得某个类别的不同观察结果:

select distinct("observation") from (select observation, severity from my_measurement where category='availability')

但是没有像 SQL 中那样的 WHERE IN 子句将其用作子查询。

知道如何使用 influxdb 解决这个问题吗?

我用简单的 GROUP BY 解决了这个问题。类别 可用性 和虚拟机 VM2:

的示例
SELECT MAX("value") FROM (
    SELECT "value"
    FROM my_measurement
    WHERE category='availability' AND VM='VM2'
    GROUP BY observation
    ORDER BY DESC
    LIMIT 1)
ORDER BY DESC