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

如何在Vertica数据库(vsql)中按时间戳范围对行数据进行聚合统计

Vertica(vsql)按1小时窗口聚合带宽数据实现方案

你给出的预期结果是将每个小时整点作为窗口结束时间,覆盖该时刻及之前1小时内的所有数据,对应的实现SQL如下,直接替换表名即可运行:

SELECT
  -- 版本适配1:Vertica 9.0+可直接用ceil参数向上取整到小时
  DATE_TRUNC('hour', ts, 'ceil') AS ts,
  -- 版本适配2:低版本Vertica用epoch转换实现向上取整,替换上面的DATE_TRUNC行即可
  -- TO_TIMESTAMP(CEIL(EXTRACT(EPOCH FROM ts) / 3600) * 3600) AS ts,
  -- 如需输出千分位逗号格式,用TO_CHAR包裹sum即可:TO_CHAR(SUM(bandwidth_bytes), '999,999,999') AS bandwidth_bytes
  SUM(bandwidth_bytes) AS bandwidth_bytes
FROM
  替换为你的实际表名
GROUP BY
  1
ORDER BY
  ts DESC;

常规自然小时聚合方案

如果你需要的是常规左闭右开的自然小时窗口(即统计[整点, 下一小时整点)区间内的数据),使用如下SQL即可:

SELECT
  DATE_TRUNC('hour', ts) AS ts,
  SUM(bandwidth_bytes) AS bandwidth_bytes
FROM
  替换为你的实际表名
GROUP BY 1
ORDER BY ts DESC;

内容的提问来源于stack exchange,提问作者Praveen Kumar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 13:36:01