如何用单条SQL查询检测近期无数据记录的ID
传感器数据停止新增检测实现
需求说明
数据表按固定间隔(如5分钟)新增记录,需针对每个特定ID(如温度传感器ID)检测记录是否停止新增,需筛选满足以下条件的ID:
- 存在较近期记录(如昨日或2小时前)
- 无最近记录(如最近30分钟内)
示例数据中,传感器11在10:35后停止记录,属于需检测的目标ID。
前期尝试问题
曾使用子查询和LEFT OUTER自连接的方式,但仅能显示有近期数据的ID,无法覆盖所有符合条件的目标ID。
可行查询方案
参考思路实现了可运行的查询,该查询可展示近2天内有记录的所有ID,并标记其数据是否为最新状态。
参数说明
30分钟:判断数据是否过期的阈值2天:查询的时间范围(用于性能优化,缩小数据扫描范围)5分钟:当前时间的定义(也可设为0分钟,即直接使用系统当前时间)
查询结果示例
| 传感器ID | 最后记录时间 | 是否过期 |
|---|---|---|
| 11 | 10:35 | 是 |
| 12 | 11:20 | 否 |
| 13 | 11:15 | 否 |
内容的提问来源于stack exchange,提问作者Akom
相关产品推荐
相关产品推荐

