Estás ordenando, pero no estás agrupando los conjuntos, por lo que en realidad el COUNT() está actuando como totalizador y no dando subtotales.
Por otro lado, el uso de LEFT JOIN puede darte resultados erróneos, porque LEFT implica que opere sobre la primera tabla, haya o no coincidencias con la segunda. Esto puede no devolver los datos que esperas.
Por ejemplo: