Я работаю над реализацией Java для временного агрегирования с использованием базы данных PostgreSQL.
Мой стол выглядит так
Value | Start | Stop
(int) | (Date) | (Date)
-------------------------------
1 | 2004-01-01 | 2010-01-01
4 | 2000-01-01 | 2008-01-01
Итак, чтобы визуализировать эти периоды:
------------------------------
----------------------------------------
2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010
[ 4 ][ 5=4+1 ][ 1 ]
Мой алгоритм теперь вычисляет временные агрегации данных, например, SUM ():
Value | Start | Stop
-------------------------------
4 | 2000-01-01 | 2004-01-01
5 | 2004-01-01 | 2008-01-01
1 | 2008-01-01 | 2010-01-01
Чтобы проверить полученные результаты, я бы хотел запросить данные напрямую, используя PostgreSQL. Я знаю, что пока нет простого пути решения этой проблемы. Тем не менее, безусловно, есть способ получить те же результаты. Агрегации Count, Max, Min, Sum и Average должны поддерживаться. Я не против плохого или медленного решения, оно просто должно работать.
Я обнаружил запрос, который должен работать аналогичным образом, следующий:
select count(*), ts, te
from ( checkout a normalize checkout b using() ) checkoutNorm
group by ts, te;
Мое усыновление выглядит так:
select count(*), start, stop
from ( myTable a normalize myTable b using() ) myTableNorm
group by start, stop;
Однако сообщается об ошибке ERROR: syntax error at or near "normalize" -- LINE 2: from ( ndbs_10 a normalize ndbs_10 b using() ) ndbsNorm
.
У кого-нибудь есть решение этой проблемы? Он не должен быть основан на вышеупомянутом запросе, пока он работает. Большое спасибо.