【问题标题】:Can I replace null values in returned rows in QuestDB?我可以替换 QuestDB 中返回行中的空值吗?
【发布时间】:2021-03-12 09:54:23
【问题描述】:

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

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

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

【问题讨论】:

    标签: analytics questdb


    【解决方案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 keyword documentation,对于 coalesce(),请参阅 conditional functions documentation 页面。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-07-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-21
      • 2017-02-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多