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