我正在尝试解决一个特别困难的问题。我正在 SQL 表 (PostgreSQL) 中存储来自某些传感器的一些遥测数据,我想知道如何编写一个查询,该查询将使用来自其他两个表的关系信息对遥测数据进行分组。
我有一张表存储来自传感器的遥测数据。该表包含三个字段,一为时间戳,一为传感器ID,一为传感器当时的值。值列是一个递增计数(它只会增加,不会重置)
Sensor_Telemetry表
时间戳 | 传感器 ID | 价值 |
---|---|---|
2022-01-01 00:00:00 | 5 | 3 |
2022-01-01 00:00:01 | 5 | 5 |
2022-01-01 00:00:02 | 5 | 6 |
... | ... | ... |
2022-01-01 01:00:00 | 5 | 第675章 |
我有另一个表,用于存储传感器的状态(无论是静止还是运动)以及该传感器的特定状态的开始/结束日期:
状态表
开始日期 | 结束日期 | 地位 | 传感器 ID |
---|---|---|---|
2022-01-01 00:00:00 | 2022-01-01 00:20:00 | 运动中 | 5 |
2022-01-01 00:20:00 | 2022-01-01 00:40:00 | 固定式 | 5 |
2022-01-01 00:40:00 | 2022-01-01 01:00:00 | 运动中 | 5 |
... | ... | ... | ... |
传感器位于特定位置。Sensor 表存储以下元数据:
传感器表
传感器 ID | 位置ID |
---|---|
5 | 16 |
在决赛表中,我有每个位置发生的变化。班次表是所有班次发生的列表,即在本例中,班次 A 定义为每天 00:00:00 到 00:30:00 之间发生,班次 B 定义为每天 00:30 …