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

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

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

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

Ответы

Ответ 1

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

Ответ 2

Его очень простая

для ex.

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

в "среднем" вы получите среднее значение "t.asset"

Ответ 3

Если вы пытаетесь получить средние активы клиентов, я думаю, что буду использовать в CTE. Вы можете попробовать, если sql 2005 или больше

EDIT: Взял вторую группу, поскольку я думаю, что вы хотите получить только один результат от средних активов

With clientsum (client,assets)
as
(
    SELECT     CLIENT, SUM(asset) AS assets
    FROM         CLIENTTABLE
    GROUP BY CLIENT
)
SELECT avg(assets) AS Expr1
FROM  clientsum