У меня есть база данных 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. Возможно ли это?