Как выполнить группировку по часам с шагом в 2 часа в postgresql?

Есть таблица:

Есть таблица:

С помощью запроса:

select to_char(date_trunc('hour', date_and_time), 'hh24:mi') as onehour, count(*) 
from authorizations 
where to_char(date_and_time, 'yyyy-mm-dd') = '2021-04-01' 
group by onehour

формирую сгруппированное по часам количество запросов:

группировка по часам

ВОПРОС. Как сделать так, чтобы вывод происходил с шагом не в 1 час как у меня, а в 2 часа или 3 часа и т.д? Например, если шаг в 2 часа, то запросы где 8 и 9 часов будут в одной группе и в count будет 3. Часы, которых не было в первой таблице должны пропускаться, так же как и в моём решении.

Помогите пожалуйста знатоки postgresql.


Ответы (0 шт):