28

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

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

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

4 回答 4

47

我认为您的问题需要一些解释。如果您想获取按您分组的总和,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

于 2009-10-15T14:53:30.203 回答
20

它非常简单

例如。

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

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

于 2015-05-21T05:50:58.880 回答
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
于 2009-10-15T14:50:20.130 回答
0
sum(avg(value) from * tablname
于 2021-12-09T04:15:05.740 回答