Esto es lo que me devuelve con el show:
Haciendo pruebas me he dado cuenta que el WHERE discrimina fila por fila, de ahí que en la fila (registro) donde encuentra un cero la elimina, pero no el resto de filas (registros) que corresponden al mismo 'num', que se repite. De ahí que a los efectos no discrimine el 'num' completo sino sólo la 'seccion' (registro) donde encuentra el cero. ¿Tendrá algo que ver? Tener en cuenta que un mismo 'num' (por ejemplo el num=1) tiene tres 'id' distintos, uno para cada sección (num=1, seccion=1 --->id=1 ; num=1, seccion=2 --->id=2 ; num=1, seccion=3 --->id=3).
Resumiendo, en el RESULTADO sólo pueden listarse los 'num' que han cubierto todas las secciones, y para ello se considera que cada 'seccion' está cubierta si cada uno de sus elementos es mayor que cero.