Selecionar os 5 cursos com mais alunos

Olá amigos!!!
Preciso de um select que pegue os 5 cursos que possuem mais alunos, mas estou com sérios problemas pra conseguir rsrsr
Sem%20t%C3%ADtulo

O que seriam “sérios problemas para conseguir”? Com operadores como count e limit, e os devidos joins, acredito que dá pra fazer isso tranquilo. Você estudou sobre eles já?

Abraço.

Já estudei e revisei há um tempo, mas não consigo formular essa query

Se você perceber as tabelas tb_alunos e tb_cursos não são diretamente ligadas, existe outras três tabelas entre elas, é isso que está me confundindo.

Se você consegue fazer joins entre 2 tabelas, consegue entre 3, 4, 5 ou mais. O princípio é o mesmo.

Por exemplo, se você quiser saber quais alunos de uma determinada displina, precisaria conectar tb_alunos e tb_dis_cur_sem. Seria algo mais ou menos assim:

select a.alu_nome, b.dis_nome
from tb_alunos a, tb_disciplinas b, tb_alu_disciplinas c
where a.alu_id = c.fk_alunos_id -- "conecta" tb_alunos e tb_alu_disciplinas
and b.dis_id = c.fk_disciplinas_id -- "conecta" tb_alu_disciplinas e tb_disciplinas

Se você quiser contar os alunos das disciplinas, usando a mesma base, precisa só adicionar o count e colocar o agrupamento por disciplina:

select count(*), b.dis_nome
from tb_alunos a, tb_disciplinas b, tb_alu_disciplinas c
where a.alu_id = c.fk_alunos_id -- "conecta" tb_alunos e tb_alu_disciplinas
and b.dis_id = c.fk_disciplinas_id -- "conecta" tb_alu_disciplinas e tb_disciplinas
group by b.dis_nome -- agrupa o count por disciplina

Se você quer só o total de uma disciplina, não precisa da coluna de nome nem do agrupamento, mas precisa adicionar uma verificação a mais:

select count(*)
from tb_alunos a, tb_disciplinas b, tb_alu_disciplinas c
where a.alu_id = c.fk_alunos_id -- "conecta" tb_alunos e tb_alu_disciplinas
and b.dis_id = c.fk_disciplinas_id -- "conecta" tb_alu_disciplinas e tb_disciplinas
and b.dis_nome = 'NOME DA DISCIPLINA'

Obs: não chequei a sintaxe, pode estar errada, mas a ideia é essa aí.

Expanda essas ideias e você conseguirá resolver seu problema inicial.

Abraço.

1 curtida

Ei cara, deu certo aqui, muito obrigado mesmo, você me ajudou muito realmente, melhorou muito minhas ideias, vlwww