1
resposta

Solução do desafio ao final do curso para avaliação!

Olá, boa tarde! Poderiam dar uma olhada e opinar?

select categoria.nome,
       count (curso.categoria_id) Numero_alunos
  from curso
  join categoria on curso.categoria_id = categoria.id
group by categoria.id 
order by numero_alunos desc;  

Agradeço!

1 resposta

Olá, Flavia, tudo bem?

A sua query ficou muito legal, porém, o que foi solicitado é a quantidade de categorias mais requisitadas por aluno, como foi feito pelo instrutor com os cursos:

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
  LIMIT 1;

Então, a query seria bem semelhante a esta, seria implementado apenas uma nova junção com a tabela de categoria, para buscar os nomes das categorias e na cláusula GROUP BY, seria informado o campo categoria.nome ao invés de curso.nome, dessa forma:

SELECT  categoria.nome, 
        COUNT(aluno_curso.aluno_id) as numero_alunos
    FROM categoria
    JOIN curso on curso.categoria_id = categoria.id
    JOIN aluno_curso on aluno_curso.curso_id = curso.id
GROUP BY  categoria.nome
ORDER BY numero_alunos desc;

Foi muito legal você ter compartilhado a sua resposta da atividade aqui com a gente, você está indo muito bem.

Continue assim, qualquer dúvida é só falar e bons estudos!