2016-03-14 2 views
2

Я хочу рассчитать среднее значение столбца чисел, но я хочу исключить строки, которые имеют нуль в этом столбце, есть ли способ, которым это возможно? код у меня есть только простая сумма/количество:Как рассчитать среднее значение в SQL, исключая нули?

SELECT SUM(Column1)/Count(Column1) AS Average 
FROM Table1 
+0

я удалил лишние теги базы данных. Не стесняйтесь добавлять тег для используемой базы данных. –

ответ

10
SELECT AVG(Column1) FROM Table1 WHERE Column1 <> 0 
2

Один подход AVG() и CASE/NULLIF():

SELECT AVG(NULLIF(Column1, 0)) as Average 
FROM table1; 

NULL Средняя игнорирует значения. Это предполагает, что вы хотите другие агрегации; в противном случае очевидным выбором является фильтрация.

-1

Несколько дороги ведут в Рим ...

select sum(Column1)/sum(case Column1 
          case 0 then 0 else 1 
          end) 
from table1