Je supposerai que vous devez d'abord calculer la formule interne pour certains groupes d'éléments, puis additionner les résultats. J'utilise product
colonne comme choix arbitraire pour grouper la colonne. J'ai aussi renommé Count
à dcount
.
Exemple de données :
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);
Requête :
select
sum(frequency) as frequency
from
(
select
product,
sum((impressions / dcount::numeric) * volume) / sum(volume) as frequency
from
sample
group by
product
) x;
Le fait est que vous ne pouvez pas imbriquer des fonctions d'agrégation. Si vous devez agréger des agrégats, vous devez utiliser une sous-requête.