Je voudrais savoir si je peux obtenir la moyenne d'une somme en une seule requête SQL SERVER,
J'ai essayé de le faire avec la demande suivante mais cela ne fonctionne pas:
SELECT t.client,
AVG(SUM(t.asset)) AS Expr1
FROM TABLE t
GROUP BY t.client
Je pense que votre question a besoin d'un peu d'explication. Si vous souhaitez prendre les sommes regroupées par t.client
vous pouvez utiliser:
SELECT t.client, SUM(t.asset)
FROM the-table t
GROUP BY t.client
Ensuite, si vous voulez prendre la moyenne de cette somme, faites simplement:
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
Vous ne pouvez cependant pas grouper la requête externe, car cela vous donnera des résultats comme dans la première requête. Les résultats de la requête interne sont déjà regroupés par t.client
.
C'est très simple
par ex.
SELECT t.client,
SUM(t.asset)/count(t.asset) AS average
FROM TABLE t
GROUP BY t.client
en "moyenne" vous obtiendrez la moyenne de "t.asset"
Si vous essayez d'obtenir les actifs moyens des clients, je pense que je les utiliserais chez CTE. Vous pouvez essayer si SQL 2005 ou supérieur
EDIT: A pris le deuxième groupe, car je pense que vous voulez juste un résultat ici d'actifs moyens
With clientsum (client,assets)
as
(
SELECT CLIENT, SUM(asset) AS assets
FROM CLIENTTABLE
GROUP BY CLIENT
)
SELECT avg(assets) AS Expr1
FROM clientsum