You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在QuestDB中是否可使用任意时间戳列执行SAMPLE BY操作?

在QuestDB中用非指定时间戳列执行SAMPLE BY操作

当然可以用其他列来执行SAMPLE BY,但有个关键前提:目标列必须是数值类型(比如INT、LONG、DOUBLE这类),字符串、布尔值这类非数值列不行。

具体用法示例

假设你有一张包含sensor_id(数值型)和读数的表,想要按每5个传感器ID的区间来聚合统计数量,写法如下:

SELECT count(*) 
FROM sensor_readings 
SAMPLE BY 5 ON sensor_id;

这里的逻辑和时间戳列的SAMPLE BY一致,只是把时间区间换成了数值区间——把sensor_id的值按5为步长划分成一个个区间,然后对每个区间内的数据做聚合。

注意点

  • 非时间戳列的采样完全基于数值区间划分,和时间窗口的逻辑同源,但只适用于能做区间划分的数值类型;
  • 若强行用非数值列(比如字符串)执行SAMPLE BY,会直接触发语法错误;
  • 虽然支持这种用法,但SAMPLE BY原本是为时间序列数据的时间窗口聚合设计的,非时间列的使用场景相对有限,适合需要按数值段分组统计的场景。

内容的提问来源于stack exchange,提问作者Bolek Ziobrowski

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 04:04:52