ネストされた集計関数とグループ化を使用して、合計の平均を取得しようとしています。私がやりたいことは次のとおりです。
SELECT AVG(SUM(x) GROUP BY y) WHERE ... GROUP BY ...;
つまり、返される各行について、フィールドの1つを合計の平均にします。ここで、各合計は、yが同じである行の上にあります。
可能であれば副選択は避けたいと思います。
ネストされた集計関数とグループ化を使用して、合計の平均を取得しようとしています。私がやりたいことは次のとおりです。
SELECT AVG(SUM(x) GROUP BY y) WHERE ... GROUP BY ...;
つまり、返される各行について、フィールドの1つを合計の平均にします。ここで、各合計は、yが同じである行の上にあります。
可能であれば副選択は避けたいと思います。
サブクエリが必要です:
select z, avg(sumval)
from (select y, z, sum(x) as sumval
from t
group by y, z
) t
group by z
そのために共通テーブル式(CTE)を使用することもできます。
WITH tmp AS (
SELECT y, z, sum(x) as sumval
FROM t
GROUP BY y, z
)
SELECT z, avg(sumval)
FROM tmp
GROUP BY z