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