0
Я kludged своего пути через, делая это, но я чувствую, что, вероятно,/быстрее/лучше решения чище, и я всегда стремится узнать:MySQL средних ненулевых столбцов
UPDATE myTable SET fAvg =
(COALESCE(f1,0) + COALESCE(f2,0) + COALESCE(f3,0) + COALESCE(f4,0))
/
(
CASE WHEN f1 IS NOT NULL THEN 1 ELSE 0 END +
CASE WHEN f2 IS NOT NULL THEN 1 ELSE 0 END +
CASE WHEN f3 IS NOT NULL THEN 1 ELSE 0 END +
CASE WHEN f4 IS NOT NULL THEN 1 ELSE 0 END
)
Итак, как это можно улучшить?
Если это все, что я пропустил, то я вполне доволен - я предполагал, что будет какой-то умный трюк, используя FIELD или некоторую функцию агрегации нескольких столбцов, о которой я никогда не слышал. – Codemonkey