web-dev-qa-db-ja.com

1つのクエリの合計の平均

1つのSQL SERVERリクエストで合計の平均を取得できるかどうか知りたいのですが、

次のリクエストでそれを試みましたが、うまくいきません:

  SELECT t.client, 
         AVG(SUM(t.asset)) AS Expr1
    FROM TABLE t
GROUP BY t.client
21
Roch

あなたの質問には少し説明が必要だと思います。 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によって既にグループ化されています。

38
Lukasz Lysik

とてもシンプル

例として。

 SELECT t.client, 
         SUM(t.asset)/count(t.asset) AS average
    FROM TABLE t
GROUP BY t.client

「平均」では、「t.asset」の平均を取得します

16
Kalpesh Gohel

クライアントの平均的な資産を取得する場合は、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
4
Gratzy