a ver si esto, gulp,
Código sql:
Ver originalSELECT t1.idForm, t1.respuesta, t1.res, t2.tot, CONCAT( ROUND( (
(
t1.res *100
) / t2.tot ) , 2 ) , '%'
)porcentaje
FROM (
SELECT idForm, respuesta, COUNT( respuesta ) res
FROM `respuesta`
GROUP BY idForm, respuesta
ORDER BY idForm
)t1
INNER JOIN (
SELECT idForm, COUNT( * ) tot
FROM respuesta
GROUP BY idForm
)t2 ON t1.idForm = t2.idForm
EDITO para decirte que yo, en tu caso, en lugar un campo de tipo ENUM, usaría una tabla con los valores y relacionada. Si me preguntas por qué, te diré que por al menos un par de razones, la primera de portabilidad (si quieres trabajar con otra base de datos), y segunda porque me ofrece la posibilidad de controlar mejor los datos, aunque sea algo menos rápida. Me explico: si quieres puntuar con 5 puntos muy buena, con 4 buena, con 3 regular, etc., tendrías que usar condicionales con enum y más sintaxis sql que si tuvieras una tabla en la que pondrías un campo puntuacion. Si un día quisieras cambiar la puntuación, no tendrías que cambiar la sintaxis sql, sino simplemente el valor en la tabla. Es verdad que, a diferencia de ahora, tendrás que relacionar todo con esa otra tabla, aunque eso no resultará nada difícil.