Вы можете использовать функцию timescaledb
extension time_bucket()
, как прокомментировал @Mike Organek, или использовать собственное преобразование PosgreSQL
данных, например:
SELECT
sum(value) as sum_value,
to_char(time::date,'DD-MM-YY') as day,
floor(extract(epoch from "time")/(60*60*24*2)) as time_bucket
FROM "measures"
GROUP BY "time_bucket"
ORDER BY "day" asc;
В приведенном выше запросе мы извлекаем unixtime из столбца datetime, делим его на период группировки в секундах (60 * 60 * 24 * 2 - означает 2 дня или 48 часов) и округлить его для использования в группу по оператору