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

如何在PostgreSQL的statuses表聚合任意时间范围时序数据,结果不超100行

问题描述

表statuses包含3个字段:

  • id(uuid类型,主键)
  • time(带时区的时间戳类型,非空)
  • duration(整数类型,非空)

表中记录分布不均,某天可能仅1条记录,另一天可能有数千条。我需要对任意时间范围的duration字段做平均值聚合,且返回结果的记录数不超过100条。若按天或小时分组会很简单,但任意时间范围以及合适分组粒度的确定让我困惑。

示例

实际数据

timeduration
2023-06-30 03:49:43+0096
2023-06-30 03:51:25+00132
2023-06-30 03:51:55+00124
2023-06-30 03:52:25+00102
2023-06-30 03:52:55+00119
2023-06-30 03:53:25+00136
2023-06-30 03:53:55+0092
2023-06-30 03:54:25+0086
2023-06-30 03:54:55+0099
2023-06-30 03:55:25+00105
2023-06-30 03:55:55+0094
2023-06-30 03:56:25+0076
2023-06-30 03:56:55+0077
2023-06-30 03:57:25+0066
2023-06-30 03:57:55+0080
2023-06-30 03:59:13+0098
2023-06-30 03:59:43+00201
2023-06-30 04:00:13+00652
2023-06-30 04:00:43+00154
2023-06-30 04:01:13+00272

预期输出

假设希望最多返回10条结果(而非原问题中的100条),预期输出如下:

timeduration
2023-06-30 03:49:43+00114
2023-06-30 03:51:55+00113
2023-06-30 03:52:55+00127.5
2023-06-30 03:53:55+0089.0
...6 more rows

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 04:13:10