以下是我的数据库中的一个测量示例:
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解决这个问题吗?
答案 0 :(得分:0)
我用一个简单的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