Elaborei o seguinte código para transformar esta query:
SELECT curso.nome,
COUNT(aluno_curso.aluno_id) numero_alunos
FROM curso
JOIN aluno_curso ON aluno_curso.curso_id = curso.id
GROUP BY 1
ORDER BY numero_alunos DESC
HAVING COUNT(aluno_curso.aluno_id) > 2;
Nesta abaixo, considerando a solicitação do professor de inserir uma Sub-query:
SELECT curso
FROM (
SELECT curso.nome AS curso,
COUNT(aluno_curso.aluno_id) numero_alunos
FROM curso
JOIN aluno_curso ON aluno_curso.curso_id = curso.id
GROUP BY 1
ORDER BY numero_alunos DESC
) AS curso_n_alunos
WHERE numero_alunos > 2;
Ela trouxe como retorno o curso PHP, o qual de fato possui mais do que dois alunos, que validei pela Query abaixo:
SELECT curso.nome,
COUNT(curso_id) AS "QUANTIDADE DE ALUNOS"
FROM curso
JOIN aluno_curso ON aluno_curso.curso_id = curso.id
GROUP BY curso.nome
ORDER BY "QUANTIDADE DE ALUNOS" DESC;
Alguém construiu algo diferente e obteve retorno semelhante?