SELECT date_trunc('hour', date1) AS hour_stump
, (extract(minute FROM date1)::int / 5) AS min5_slot
, count(*)
FROM table1
GROUP BY 1, 2
ORDER BY 1, 2;
Можете да GROUP BY
две колони:клеймо за време, съкратено до часа и 5-минутно време.
Примерът създава слотове 0 - 11
. Добавете 1
ако предпочитате 1 - 12
.
Прехвърлям резултата от extract()
до цяло число, така че разделението / 5
съкращава дробни цифри. Резултатът:
минута 0 - 4 -> слот 0
минута 5 - 9 -> слот 1
и т.н.
Тази заявка връща стойности само за онези 5-минутни интервали, където са намерени стойности. Ако искате стойност за всеки слот или ако искате текуща сума над 5-минутни интервали, помислете за този свързан отговор:
- PostgreSQL:текущ брой редове за заявка „по минута“