我試圖使用嵌套的聚合函數和分組獲得平均和。我希望做的是:在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
「*我想如果可能的話*避免子查詢」。爲什麼? –