TSQL - среднее значение всех значений в столбце, которые не равны нулю

Я собираюсь написать отчет и хочу получить среднее значение возрастного столбца. Проблема в том, что не все строки имеют возраст.

Если значения для столбца равны 0 2 4, я бы хотел, чтобы 3 возвращали, а не 2. Я не могу просто исключить нулевые строки с WHERE, когда я использую другие столбцы в этих строках. Существует ли такая функция, как тип функции AvgIfNotZero?

Ответы

Ответ 1

SELECT

    AVG (CASE WHEN Value <> 0 THEN Value ELSE NULL END)
    ....

AVG не будет принимать во внимание значения NULL. Или это

    AVG (NULLIF(Value, 0))