如何查询Apache IoTDB中数据最大值及其对应时间戳?
Apache IoTDB 查询最大值及对应时间戳的SQL写法
1. 查询指定时间序列的最大值及对应时间戳
针对单个明确的时间序列(比如root.sg.device1.temperature),最直接的写法是通过排序取最大值对应的记录:
SELECT temperature, time FROM root.sg.device1 ORDER BY temperature DESC LIMIT 1
如果存在多个相同最大值的记录,需要获取所有符合条件的结果时,去掉LIMIT 1即可。
另一种基于聚合函数的写法,可直接返回最大值及首次出现该值的时间戳:
SELECT MAX_VALUE(temperature), FIRST_VALUE(time) FILTER (WHERE temperature = MAX_VALUE(temperature)) FROM root.sg.device1
2. 查询全局/指定范围的最大值及对应时间戳
如果要查询整个存储实例或某个存储组下所有时间序列中的最大值,以及对应的时间、设备、测点信息,可使用嵌套查询排序的方式:
SELECT time, device, measurement, value FROM ( SELECT time, device, measurement, value FROM root.** ) ORDER BY value DESC LIMIT 1
将root.**替换为具体的存储组路径(比如root.sg.**)即可缩小查询范围。若需返回所有最大值记录,同样去掉LIMIT 1。
内容的提问来源于stack exchange,提问作者NKZ
相关产品推荐
相关产品推荐

