#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