Мне нужно рассчитать проценты различных измерений в таблице.Я хотел бы упростить вещи с помощью оконных функций для вычисления знаменателя, однако у меня возникла проблема, потому что числитель также должен быть агрегатом.1003 *
create temp table test (d1 text, d2 text, v numeric);
insert into test values ('a','x',5), ('a','y',5), ('a','y',10), ('b','x',20);
Если я просто хочу рассчитать долю каждой отдельной строки из d1, то оконные функции работают нормально:
select d1, d2, v/sum(v) over (partition by d1)
from test;
"b";"x";1.00
"a";"x";0.25
"a";"y";0.25
"a";"y";0.50
Однако мне нужно вычислить общееделить на сумму d2 из d1.Вывод, который я ищу:Я предполагаю, что это потому, что он жалуется на то, что оконная функция не учитывается в предложении группировки, однако оконные функции все равно не могут быть включены в предложение группировки.Postgresql 8.4 и имеет те же функции управления окнами.Обратите внимание, что Greenplum не может делать коррелированные подзапросы.