gpt4 book ai didi

sql - postgres 聚合函数调用不能嵌套

转载 作者:行者123 更新时间:2023-11-29 12:00:08 25 4
gpt4 key购买 nike

我有一个问题:

    select sum(
sum((Impressions / Count) * Volume) / sum(Volume)
) as frequency
from datatable;

但是我不能在 postgres 中执行它,因为它使用嵌套聚合。有没有不使用嵌套聚合的另一种写法?

最佳答案

如果需要嵌套聚合函数,则需要使用某种形式的子查询。我使用 product 列作为分组列的任意选择。我还将 Count 重命名为 dcount

SQLFiddle

示例数据:

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;

重点是您不能嵌套聚合函数。如果您需要聚合聚合,那么您需要使用子查询。

关于sql - postgres 聚合函数调用不能嵌套,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24063370/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com