Jeg vil antage, at du først skal beregne den indre formel for nogle grupper af elementer og derefter summere resultaterne. Jeg bruger product
kolonne som et vilkårligt valg til gruppering af kolonne. Jeg omdøbte også Count
til dcount
.
Eksempeldata:
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);
Forespørgsel:
select
sum(frequency) as frequency
from
(
select
product,
sum((impressions / dcount::numeric) * volume) / sum(volume) as frequency
from
sample
group by
product
) x;
Pointen er, at du ikke kan indlejre aggregerede funktioner. Hvis du har brug for at samle aggregater, skal du bruge underforespørgsel.