Я пытаюсь сгруппировать результаты сумм по индивидуальным дням в Postgresql. Поскольку обычный день начинается в 00:00, я бы хотел, чтобы мой начался в 04:00, поэтому, если есть запись со временем 2019-01-03 02:23, она будет считаться «2019-01-02».
Прямо сейчас мой код выглядит следующим образом: нижняя часть отлично работает при типе дня 00:00 - 23.59, однако я хотел бы сгруппировать его по верхнему диапазону, созданному выше. Я просто не знаю, как соединить эти две части.
with dateRange as(
SELECT
generate_series(
MIN(to_date(payments2.paymenttime,'DD Mon YYYY')) + interval '4 hour',
max(to_date(payments2.paymenttime,'DD Mon YYYY')),
'24 hour') as theday
from payments2
)
select
sum(cast(payments2.servicecharge as money)) as total,
to_date(payments2.paymenttime,'DD Mon YYYY') as date
from payments2
group by date
Результат, подобный этому
+------------+------------+
| total | date |
+------------+------------+
| 20 | 2019-01-01 |
+------------+------------+
| 60 | 2019-01-02 |
+------------+------------+
| 35 | 2019-01-03 |
+------------+------------+
| 21 | 2019-01-04 |
+------------+------------+
Большое спасибо за вашу помощь.