Среднее значение SQL для возвратов при наличии одного возврата = 0

#mysql

#mysql

Вопрос:

Я пытаюсь найти среднее значение для 4 возвратов a, b, c, d. Иногда один возврат, например, a = 0, я хочу опустить этот и найти среднее значение только для a, b, c

 SELECT SUM(CASE WHEN x > 0 THEN COALESCE(a, 0)   COALESCE(b, 0)   COALESCE(c, 0)   COALESCE(d, 0)) / 4
  

Пожалуйста, помогите!!!

Ответ №1:

 Select Z.PrimaryKeyCol, Avg( Z.Value )
From    (
        Select PrimaryKeyCol, a As Value
        Union All Select PrimaryKeyCol, b
        Union All Select PrimaryKeyCol, c
        Union All Select PrimaryKeyCol, d
        ) As Z
Where Z.Value <> 0
Group By Z.PrimaryKeyCol
  

Ответ №2:

 select (a b c d)
/
(if(a = 0,0,1)   if(b = 0,0,1)   if(c = 0,0,1)   if(d = 0,0,1) )
from table