Предполагам, че първо трябва да изчислите вътрешната формула за някои групи елементи и след това да сумирате резултатите. Използвам product
колона като произволен избор за групиране на колона. Също така преименувах Count
към dcount
.
Примерни данни:
create table sample (
product varchar,
dcount int,
impressions int,
volume int
);
insert into sample values ('a', 100, 10, 50);
insert into sample values ('a', 100, 20, 40);
insert into sample values ('b', 100, 30, 30);
insert into sample values ('b', 100, 40, 30);
insert into sample values ('c', 100, 50, 10);
insert into sample values ('c', 100, 60, 100);
Заявка:
select
sum(frequency) as frequency
from
(
select
product,
sum((impressions / dcount::numeric) * volume) / sum(volume) as frequency
from
sample
group by
product
) x;
Въпросът е, че не можете да влагате агрегатни функции. Ако трябва да агрегирате агрегати, трябва да използвате подзаявка.