Tôi sẽ giả sử rằng bạn cần phải tính toán công thức bên trong cho một số nhóm mục trước và hơn là kết quả tính tổng. Tôi đang sử dụng product
cột như một lựa chọn tùy ý để nhóm cột. Tôi cũng đã đổi tên Count
thành dcount
.
Dữ liệu mẫu:
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);
Truy vấn:
select
sum(frequency) as frequency
from
(
select
product,
sum((impressions / dcount::numeric) * volume) / sum(volume) as frequency
from
sample
group by
product
) x;
Vấn đề là bạn không thể lồng các hàm tổng hợp. Nếu bạn cần tổng hợp các tổng hợp thì bạn cần sử dụng truy vấn con.