1
我有一個查詢:Postgres的聚合函數調用不能嵌套
select sum(
sum((Impressions/Count) * Volume)/sum(Volume)
) as frequency
from datatable;
但是我不能在Postgres的,因爲它使用嵌套聚合執行此。有沒有另一種方式來寫這不使用嵌套聚合?
我有一個查詢:Postgres的聚合函數調用不能嵌套
select sum(
sum((Impressions/Count) * Volume)/sum(Volume)
) as frequency
from datatable;
但是我不能在Postgres的,因爲它使用嵌套聚合執行此。有沒有另一種方式來寫這不使用嵌套聚合?
我會假設你需要先計算一些項目組的內部公式,然後再計算總和結果。我使用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;
的一點是,你不能嵌套聚合函數。如果您需要聚合聚合比您需要使用子查詢。
您認爲這意味着什麼?你能舉一些例子數據/結果嗎? –
你認爲外部和()有什麼作用?似乎術語和((印象/計數)*音量)/和(音量)應該只有一個值,所以我不知道外部和()可以做什麼。 –
請定義「this」。你目前顯示的內容沒有意義。從表格定義(psql中的'\ d tbl')和您的Postgres版本開始。添加你想要實現的內容的解釋。 –