2014-09-10 4 views
0

У меня есть следующая таблица:
Горизонтальное Средний SQL View

ID Value1 Value2 Value3 
1 10  0  5 
2 12  10  20 
3 0  5  9 
4 20  12  8 
5 2  15  0 

Я хочу иметь следующий результат:

ID avgValue 
1 7.5 
2 14 
3 7 
4 13.33 
5 8.5 

Формула нормальна в среднем, но средний расчет всегда показывать ноль стоимость. Кто-нибудь знает, как это сделать?

спасибо.

ответ

3

Идея заключается в выборе счетчика знаменателя на основе 0 значения трех столбцов ..

http://sqlfiddle.com/#!3/d36c31/4

select 
    id, 
    cast((value1+value2+value3) as float)/ 
    (
    case when value1>0 then 1 else 0 end 
    + 
    case when value2>0 then 1 else 0 end 
    + 
    case when value3>0 then 1 else 0 end 
    ) 
    as avgValue 

    from test 

Пожалуйста, дайте мне знать, работает ли он для вас ..

+0

спасибо спариванию, это работает должным образом. Ура, – Haminteu

Смежные вопросы