一个查询中的Sum的平均值

时间:2009-10-15 14:41:12

标签: sql sql-server tsql sum average

我想知道我是否可以在一个SQL SERVER请求中获得总和的平均值,

尝试使用以下请求执行此操作但不起作用:

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

3 个答案:

答案 0 :(得分:29)

我认为你的问题需要一些解释。如果您想使用t.client分组的总和,您可以使用:

SELECT t.client, SUM(t.asset)
FROM the-table t
GROUP BY t.client

然后,如果你想取这个sume的平均值,只需要:

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分组。

答案 1 :(得分:13)

非常简单

代表

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

在“平均值”中,您将获得“t.asset”的平均值

答案 2 :(得分:4)

如果你想获得客户的平均资产,我想我会在CTE上使用。您可以尝试sql 2005或更高版本

编辑: 因为我认为你只需要一个平均资产的结果

,就把第二组拿出来了
With clientsum (client,assets)
as
(
    SELECT     CLIENT, SUM(asset) AS assets
    FROM         CLIENTTABLE
    GROUP BY CLIENT
)
SELECT avg(assets) AS Expr1
FROM  clientsum