我试图使用嵌套的聚合函数和分组获得平均和。我希望做的是:在postgresql中使用分组的嵌套聚合函数
SELECT AVG(SUM(x) GROUP BY y) WHERE ... GROUP BY ...;
也就是说,返回的每个行,我想其中一个字段是一个平均总和,其中每个总和超过其中y是相同的行。
如果可能,我想避免子查询。
我试图使用嵌套的聚合函数和分组获得平均和。我希望做的是:在postgresql中使用分组的嵌套聚合函数
SELECT AVG(SUM(x) GROUP BY y) WHERE ... GROUP BY ...;
也就是说,返回的每个行,我想其中一个字段是一个平均总和,其中每个总和超过其中y是相同的行。
如果可能,我想避免子查询。
你需要一个子查询:
select z, avg(sumval)
from (select y, z, sum(x) as sumval
from t
group by y, z
) t
group by z
但是对于返回的每一行,我得到不同的z值和相同的平均值。这不是我想要的行为;对于每个z值,我想得到特定于该z值的相应的总和的平均值。例如,如果我的数据是 'XYZ 10 AG 15 AG 7 BG 8啊 12 BH 18 bh' 我期望已返回 'Z,平均 克16 H 19 ' – ferson2020
我的原始SQL在语法上不正确。它应该在内部子查询中具有“z”作为分组变量。我只是修正了这一点。 –
感谢您的帮助。 – ferson2020
“*我想如果可能的话*避免子查询”。为什么? –