En realidad, tu consulta no está completamente bien redactada. El uso del LEFT JOIN puee ser muy traicionero si no se lo analiza bien, y en tu caso puede estar dando resultados incorrectos sin percibirlo, simplemente porque en el álgebra de consultas
el orden si altera el producto...
La primera tabla debe ser aquella en la que esté el total de los registros posibles, y en tu caso, si uno de los colaboradores no participó en todas y cada una de las preguntas... no saldrá jamás.
Si la encuesta es a los colaboradores, entonces la tabla primaria de la consulta es "colaborador" y no "respuesta".
Yo la podría mas o menos así:
Código MySQL:
Ver original C.supervisor,
C.colaborador,
R.idpregunta,
R.respuesta,
COUNT(R.respuesta
) totalRespuesta
colaborador C
LEFT JOIN respuesta R
ON C.idcol
= R.idcolaborador
R.idencuesta = '1'
AND C.supervisor
= 'ALCALA SALAZAR' GROUP BY C.supervisor
, C.colaborador
, R.idpregunta
, R.respuesta
Hay tips adicionales:
1) Usa alias. Ayudan a mantener el código más legible.
2) No uses AS. Es obsoleto, innecesario y los manuales de buenas prácticas en las empresas de desarrollo lo desaconsejan.
3) No uses paréntesis innecesariamente. Los paréntesis tienen impacto en la lógica que aplica el parser y cuando se ponen sin necesidad generan efectos antiperformánticos.