Si quieres hacerlo sin funciones en plan sql "standard" podrias montar algo con UNION's y subconsultas
SELECT COUNT(*) AS total FROM (
SELECT 1 FROM TABLAX WHERE campo1 = 5
UNION
SELECT 1 FROM TABLAX WHERE campo2 = 5
UNION
SELECT 1 FROM TABLAX WHERE campo3 = 5
...
) TABLA_TMP
Ojo, porque tal cual esta ahi arriba, funciona para el ejemplo que dices, de una unica tupla (la subconsulta devuelve tantas tuplas de 1's como condiciones de campoxx == 5 se cumplan y luego las cuenta. Si tuvieras mas tuplas en la tabla, tendrias que decidir si te importa el que aparezca en varios campos o no para incluir condiciones AND a mayores en cada uno de los UNION's
Ahora mismo no me acuerdo muy bien de la sintaxis del UNION, si no te funciona y devuelve una unica, prueba con UNION ALL (creo que este ultimo no descartaba duplicados, y en mi consulta son duplicados, ya que cada SELECT del union devuelve un 1, si devolvieran 1, 2, 3 daria igual). Es probable que el UNION a secas haga el DISTINCT por defecto, pero ya digo, no me acuerdo, ademas tampoco especificas el SGDB que estas usando...