@fidel
Для выполнения группировки по часам с шагом в 2 часа в PostgreSQL можно использовать функцию date_trunc и оператор SQL EXTRACT.
Вот пример запроса:
1 2 3 4 5 |
SELECT date_trunc('hour', your_timestamp_column) + (((EXTRACT(hour FROM your_timestamp_column)::integer / 2)::integer) * interval '2 hours') as grouped_hour FROM your_table GROUP BY grouped_hour ORDER BY grouped_hour; |
Здесь вместо your_timestamp_column
и your_table
вы должны использовать свою таблицу и столбец с временными метками, по которым вам нужно выполнить группировку.
Функция date_trunc('hour', your_timestamp_column)
используется для обрезки времени до начала каждого часа. Затем мы добавляем вычисленное количество часов, округленное до ближайшего меньшего числа, чтобы выполнить группировку с шагом в 2 часа. В данном случае шаг составляет 2 часа, так что мы умножаем на интервал '2 hours'.
Вы можете изменить интервал или шаг группировки, изменив соответствующие значения в запросе.
Результат будет содержать сгруппированные значения времени в столбце grouped_hour
.