【发布时间】:2012-10-21 02:15:12
【问题描述】:
我有一个 PostgreSQL 9.1 数据库,其中包含一个表,其中包含 时间戳 和测量 值
'2012-10-25 01:00' 2
'2012-10-25 02:00' 5
'2012-10-25 03:00' 12
'2012-10-25 04:00' 7
'2012-10-25 05:00' 1
... ...
我需要在 8 小时的范围内平均每个小时的值。换句话说,我需要 1h-8h、2h-9h、3h-10h 等的平均值。
我不知道如何进行这样的查询。我到处寻找,但也不知道要寻找什么功能。
我发现的收盘价是每小时/每日平均值或区块平均值(例如 1h-8h、9h-16h 等)。但在这些情况下,时间戳只是使用date_trunc() 函数进行转换(如下例所示),这对我没有用处。
我认为我正在寻找的是类似于此的功能
SELECT date_trunc('day', timestamp), max(value)
FROM table_name
GROUP BY date_trunc('day', timestamp);
然后在 group-by 子句中使用某种 8 小时范围来表示每个小时。这可能吗?
【问题讨论】:
标签: sql postgresql datetime postgresql-9.1 window-functions