TSQL - 列中非零的所有值的平均值

Jus*_*808 21 t-sql average

我正在编写报告,我希望得到年龄列的平均值.问题是并非所有行都有年龄.

如果列的值是0 2 4我想要3返回,而不是2.我不能简单地用WHERE排除零行,因为我正在使用这些行中的其他列.是否存在AvgIfNotZero类型的功能?

gbn*_*gbn 43

SELECT

    AVG (CASE WHEN Value <> 0 THEN Value ELSE NULL END)
    ....
Run Code Online (Sandbox Code Playgroud)

AVG不会考虑NULL值.或这个

    AVG (NULLIF(Value, 0))
Run Code Online (Sandbox Code Playgroud)