1

我在 QuestDB 中有一个包含 IoT 传感器数据的表。通常的操作模式是传感器在具有活动的 Internet 连接时将信息写入表。这意味着他们每天从几分钟到几个小时不等,或者不断向我发送数据。当我想在此之上运行聚合查询时,我该如何解释缺失值?如果我想要 24 小时内每分钟的平均值,但缺少 4 小时的数据,我的结果是否会出现偏差?例如:

select avg(tempFahren) from (iot_logger timestamp(ts)) sample by 1m

很明显,我在绘图时直接跳到下一个报告的值,所以当传感器再次联机时,我会突然出现悬崖而不是循环模式:

在此处输入图像描述

4

2 回答 2

2

如果要填充缺失值,还可以选择FILL在 SAMPLE BY 聚合中使用关键字。有几种方法可以使用它,例如按先前值填充、线性插值或指定常量:

select ts, avg(tempFahren) from (iot_logger timestamp(ts)) sample by 1m fill(linear);

官方文档中还有更多使用示例

于 2021-01-19T09:53:17.707 回答
0

聚合函数,如avg()忽略缺失数据(例如null值)。

所以不,如果您的传感器在一段时间内不发送数据,您的结果将不会出现偏差。

于 2021-01-16T09:09:15.127 回答