1 回の SQL SERVER リクエストで合計の平均を取得できるかどうかを知りたいのですが、
次のリクエストでそれを実行しようとしましたが、うまくいきません:
SELECT t.client,
AVG(SUM(t.asset)) AS Expr1
FROM TABLE t
GROUP BY t.client
1 回の SQL SERVER リクエストで合計の平均を取得できるかどうかを知りたいのですが、
次のリクエストでそれを実行しようとしましたが、うまくいきません:
SELECT t.client,
AVG(SUM(t.asset)) AS Expr1
FROM TABLE t
GROUP BY t.client
あなたの質問には少し説明が必要だと思います。グループ化された合計を取得する場合は、t.client
次を使用できます。
SELECT t.client, SUM(t.asset)
FROM the-table t
GROUP BY t.client
次に、この合計の平均を取りたい場合は、次のようにします。
SELECT AVG(asset_sums)
FROM
(
SELECT t.client, SUM(t.asset) AS asset_sums
FROM the-table t
GROUP BY t.client
) as inner_query
ただし、最初のクエリのような結果が得られるため、外側のクエリをグループ化することはできません。内部クエリの結果は、既に によってグループ化されていt.client
ます。
クライアントの平均資産を取得しようとしている場合は、CTE で使用すると思います。SQL 2005以降の場合に試すことができます
編集: ここで平均資産の結果が 1 つだけ必要だと思うので、2 番目のグループを除外しました
With clientsum (client,assets)
as
(
SELECT CLIENT, SUM(asset) AS assets
FROM CLIENTTABLE
GROUP BY CLIENT
)
SELECT avg(assets) AS Expr1
FROM clientsum