0

一些聚合查询返回空值,有没有办法处理这个?

select time, avg(temp_f) from sensor_data sample by 1h

如果缺少某些记录,是否可以将聚合设置为 null 以外的其他值?

4

1 回答 1

1
  • 如果您的数据集有时间间隔并且在一定时间内缺少整个记录,您可以使用FILL(). 您可以选择填充策略,例如LINEAR插值、PREV使用前一个值填充,或者您可以指定常量。这将包括返回的响应中存在空白的新行:

    SELECT time, avg(temp_f) 
    FROM sensor_data
    SAMPLE BY 1h FILL(50);
    
  • 如果您的数据集有一段时间内的记录,但发送的是传感器null而不是值,您可以使用它coalesce()来指定null应如何处理。不返回新行,并为空值设置默认值:

    SELECT time, coalesce(avg(temp_f), 50) 
    FROM sensor_data
    SAMPLE BY 1h;
    

有关详细信息,请参阅FILL 关键字文档,对于 coalesce(),请参阅条件函数文档页面。

于 2021-03-12T11:57:30.997 回答