Facilitei um código anterior usando uma view.
CREATE VIEW vw_cursos_contagem AS
SELECT curso.nome,
COUNT(aluno_curso.aluno_id) numero_alunos
from curso
JOIN aluno_curso ON aluno_curso.curso_id = curso.id
GROUP BY curso.nome
ORDER BY numero_alunos DESC
-- O codigo que antes era assim:
SELECT contagem.nome, contagem.numero_alunos
FROM (SELECT curso.nome,
COUNT(aluno_curso.aluno_id) numero_alunos
from curso
JOIN aluno_curso ON aluno_curso.curso_id = curso.id
GROUP BY curso.nome
ORDER BY numero_alunos DESC) as contagem
where numero_alunos > 2
-- Fica assim:
SELECT vw_cursos_contagem.nome, vw_cursos_contagem.numero_alunos
FROM vw_cursos_contagem
where vw_cursos_contagem.numero_alunos > 2
Gostaria de saber se essa foi uma solução prática viável no dia a dia.