如何编写SQL查询Apache IoTDB中某列最大值对应的时序及关联列数据?
在Apache IoTDB中查询峰值负载对应时序数据的正确SQL语句
你之前的语句之所以无法得到正确结果,是因为把聚合函数MAX_VALUE(s02)和普通列s01、s03直接放在一起查询时,IoTDB无法关联最大值对应的时间戳,只会返回s02的最大值和任意一行的s01、s03,并非峰值时刻的完整数据。
这里提供两种可行的写法,你可以根据需求选择:
方法1:返回所有峰值时刻的数据
如果存在多个时刻s02都达到最大值,这个语句会返回所有这些时刻的s01、s02、s03数据:
SELECT s01, s02, s03 FROM root.s1899.s119.s001 WHERE s02 = (SELECT MAX_VALUE(s02) FROM root.s1899.s119.s001)
方法2:只返回第一个出现的峰值数据
如果只需要取s02最大值对应的其中一行(按s02降序排序后的第一行),可以用排序加限制行数的方式,执行效率更高:
SELECT s01, s02, s03 FROM root.s1899.s119.s001 ORDER BY s02 DESC LIMIT 1
内容的提问来源于stack exchange,提问作者NKZ
相关产品推荐
相关产品推荐

