Buenos dias amigos:

El problema que tengo es el siguiente, tengo tres tablas
primer tabla se llama receta:
`id_receta`
`id_est`
`id_expediente`
`id_medicamento`
`cantidad`
la segunda se llama persona:
`id_persona`
`nombre`
`id_expediente`
la tercer tabla se llama estasib que se refiere a establecimientos o lugares
`idest`
`NOMBRE`
he hecho este query que me cuente cuantas recetas y personas son del sexo masculino:
select count(r.id_receta) total, (p.id_expediente), sum(if(p.sexo='M', 1, 0) ) M
from receta r, persona p
where r.id_expediente=p.id_expediente
group by p.id_expediente
este query me dice que solo hay un expediente y tres recetas, el problema que cuando le digo que cuantos son masculinos me dice que tres son masculinos cuando solo hay un expediente que seria a decir que solo hay uno de sexo masculino ..
como puedo hacer para que el query no me cuente las recetas sino los expedientes para defirnir cuantos son masculinos:
el resultado del query es:
total id_expediente M
3 1 3
1 2 1
1 3 0
Por favor si alguien me ayuda a hacer el query de otra forma para obtener los datos correctos