[PERGUNTAS E RESPOSTAS] Como saber o número total de alunos cadastrados no Moodle através de uma consulta SQL?

Olá Pessoal, Tudo Bom!

Hoje vamos fazer um POST com uma pergunta do Rodrigo nos comentários aqui do blog, que foi a seguinte:

“Como saber o numero total de alunos cadastrados no Moodle através de uma consulta no Mysql?”


Vamos entender primeiramente que o Moodle define suas permissões por contexto. Existem as permissões globais de administração e existem as permissões contextuais da sala de aula. Por exemplo: Um usuário em um determinado curso pode ser aluno e em outro determinado curso pode ser professor.

Ou seja, creio que o mais prudente para se saber o número de fato de alunos seja saber o número de alunos por curso. Para isso fiz um post com o tema: Relatório de alunos matriculados por curso no Moodle em SQL

Diante disso, podemos saber todos os usuários que possuem o papel de aluno, através do SQL abaixo.

SELECT count(DISTINCT(mdl_user.id)) as TOTAL 
FROM mdl_role_assignments 
JOIN mdl_user ON mdl_user.id = mdl_role_assignments.userid 
JOIN mdl_context ON mdl_role_assignments.contextid = mdl_context.id 
WHERE mdl_role_assignments.roleid = 5 AND mdl_context.contextlevel = 50


1º Utilizei um DISTINCT em mdl_user.id para filtrar os alunos que por ventura estejam em mais de um curso.

2º Em mdl_role_assignments.roleid utilizei o ID 5 que é o ID do papel de ESTUDANTE padrão, mas aconselho fazer a consulta SELECT * FROM mdl_role para saber qual é o ID  de ESTUDANTE de sua base de dados.

É isso aí! Espero que tenha gostado do POST! Se gostou, divulgue, comente e contribua. Se não gostou, comente também e vamos juntos melhorar.
Abraço a todos!

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Contato via WhatsApp