TSQL-moyenne de toutes les valeurs d'une colonne qui ne sont pas nulles
je suis en train de rédiger un rapport et je cherche à obtenir la valeur moyenne d'une colonne d'âge. Le problème est que toutes les rangées n'ont pas d'âge.
si les valeurs pour la colonne sont 0 2 4 je voudrais que 3 soient retournées, pas 2. Je ne peux pas simplement exclure les lignes zéro avec un où comme j'utilise en utilisant d'autres colonnes dans ces lignes. Existe-t-il une fonction de type AvgIfNotZero?
18
demandé sur
Kyle Brandt
2011-01-20 22:43:26
2 réponses
SELECT
AVG (CASE WHEN Value <> 0 THEN Value ELSE NULL END)
....
AVG ne tiendra pas compte des valeurs nulles. Ou ce
AVG (NULLIF(Value, 0))
40
répondu
gbn
2011-01-20 19:46:57
, ( Sélectionnez AVG( a) à partir de
(
SELECT NULLIF([Column1], 0)
UNION ALL
SELECT NULLIF([Column2], 0)
UNION ALL
SELECT NULLIF([Column3], 0)
UNION ALL
SELECT NULLIF([Column4], 0)
) T (a)
) AS [4 Column Average]
0
répondu
Milo Woodward
2018-03-08 12:30:54