Estáis un poco confundido, mira...
Si ejecutas la siguiente query,
sólo te debe de salir 1 registro,
SELECT COUNT(oms) AS num FROM reporte WHERE ficha='148100' AND codigo='0' GROUP BY oms;
Lo mismo sucede si ejecutas,
SELECT COUNT(oms) AS num FROM reporte WHERE ficha='298852' AND codigo='0' GROUP BY oms;
y también en,
SELECT COUNT(oms) AS num FROM reporte WHERE ficha='366005' AND codigo='12' GROUP BY oms;
De ahí es donde sale los tres 1's. Ahora si haces lo siguiente de seguro te salen 2 registros, porque cumplen con la condición,
SELECT COUNT(oms) AS num FROM reporte WHERE codigo='0' GROUP BY oms;
Ejecútalo y dime que es verdad.