You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Apache IoTDB中获取温度最大值对应的所有时间戳?

在Apache IoTDB 2.0.6中获取最大值对应的所有时间戳

问题场景

现有sensor_data表数据如下:

select * from sensor_data order by time
+-----------------------------+---------+-----------+
| time                        | sensor_id|temperature|
+-----------------------------+---------+-----------+
|2024-01-01T08:00:00.000+08:00| s001    | 25.0      |
|2024-01-01T09:00:00.000+08:00| s002    | 30.0      |
|2024-01-01T10:00:00.000+08:00| s003    | 28.0      |
|2024-01-01T11:00:00.000+08:00| s004    | 30.0      |
+-----------------------------+---------+-----------+

执行SELECT max_by(time, temperature) FROM sensor_data仅返回单个时间戳:

+-----------------------------+
| _col0                       |
+-----------------------------+
|2024-01-01T11:00:00.000+08:00|
+-----------------------------+

但实际需要获取所有温度等于最大值(30.0)的时间戳。

解决方案

使用子查询先获取温度的最大值,再筛选出所有温度等于该最大值的记录,提取对应的时间戳:

SELECT time FROM sensor_data WHERE temperature = (SELECT max(temperature) FROM sensor_data)

执行后将得到期望结果:

+-----------------------------+
| time                        |
+-----------------------------+
|2024-01-01T09:00:00.000+08:00|
|2024-01-01T11:00:00.000+08:00|
+-----------------------------+

说明

MAX_BY属于聚合函数,仅会返回一行结果。通过子查询获取最大值后,用WHERE条件过滤匹配的记录,就能得到所有符合条件的时间戳,满足多值场景的需求。

内容的提问来源于stack exchange,提问作者Yangyang Xun

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.01 14:18:11