Avg суммы в одном запросе

Я хотел бы знать, могу ли я получить среднее значение суммы в одном запросе SQL SERVER,

попробовали сделать это со следующим запросом, но он не работает:

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

3 ответов


Я думаю, что ваш вопрос требует некоторых пояснений. Если вы хотите взять суммы, сгруппированные по 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.


очень просто

для ex.

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

в "среднем" вы получите в среднем "Т.актив"


Если вы пытаетесь получить средние активы клиентов, я думаю, что буду использовать в 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