Saya akan berasumsi bahwa Anda perlu menghitung rumus bagian dalam untuk beberapa kelompok item terlebih dahulu dan kemudian menjumlahkan hasil. Saya menggunakan product
kolom sebagai pilihan arbitrer untuk mengelompokkan kolom. Saya juga mengganti nama Count
ke dcount
.
Contoh data:
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);
Pertanyaan:
select
sum(frequency) as frequency
from
(
select
product,
sum((impressions / dcount::numeric) * volume) / sum(volume) as frequency
from
sample
group by
product
) x;
Intinya adalah Anda tidak dapat membuat sarang fungsi agregat. Jika Anda perlu menggabungkan agregat maka Anda perlu menggunakan subquery.