У меня есть база данных 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);
Но затем используя какой-то 8-часовой диапазон для КАЖДОГО часа в предложении group-by. Возможно ли это?