11

ネストされた集計関数とグループ化を使用して、合計の平均を取得しようとしています。私がやりたいことは次のとおりです。

SELECT AVG(SUM(x) GROUP BY y) WHERE ... GROUP BY ...;

つまり、返される各行について、フィールドの1つを合計の平均にします。ここで、各合計は、yが同じである行の上にあります。

可能であれば副選択は避けたいと思います。

4

2 に答える 2

23

サブクエリが必要です:

select z, avg(sumval)
from (select y, z, sum(x) as sumval
      from t
      group by y, z
     ) t
group by z
于 2012-06-19T19:08:58.657 に答える
0

そのために共通テーブル式(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
于 2021-10-13T12:33:42.567 に答える