Oi colegas!
O meu ficou um pouco diferente mais testando a de você cheguei no mesmo resultado.
-- Categoria mais requisitada
select
cg.nome as "Categoria"
, count (ac.aluno_id) "Qtde Alunos"
from categoria cg
right join curso c on cg.id = c.categoria_id
right join aluno_curso ac on c.id = ac.curso_id
group by 1
order by "Qtde Alunos" DESC
;
Será que tem problema eu ter contado os alunos e não os cursos de aluno_curso? Acho que estamos contando a qtde de relacionamentos, então não faria diferença, mas estou insegura.
Também ainda não entendi direito quando usamos join ou right join ou left join...
Nesse caso, talvez por causa da ordem, right join funcionou, mas se eu estiver fazendo errado queria saber para não errar na vida real.