Oi, Barbara! Como vai?
Sua dúvida faz sentido e a diferença nos resultados realmente pode vir da interpretação da métrica usada para calcular a porcentagem.
Pelo que você explicou, você fez o cálculo da porcentagem de alunos aprovados com base no total de alunos, o que significa que você dividiu a quantidade de aprovados pelo total de alunos matriculados.
A outra possibilidade seria calcular a porcentagem de aprovados com base apenas nos alunos que têm notas registradas, o que excluiria aqueles sem nota.
Por exemplo:
SELECT
(SELECT COUNT(*) FROM Alunos) AS Total_Alunos,
(SELECT COUNT(*) FROM Notas WHERE nota >= 7.0) AS Alunos_Aprovados,
(ROUND(100.0 * (SELECT COUNT(*) FROM Notas WHERE nota >= 7.0) / (SELECT COUNT(*) FROM Alunos), 2) || '%') AS Porcentagem;
Explicação do código acima:
COUNT(*) FROM Alunos
: Conta o número total de alunos.COUNT(*) FROM Notas WHERE nota >= 7.0
: Conta apenas os alunos aprovados (nota maior ou igual a 7.0).- Cálculo da porcentagem: Multiplica o número de aprovados por 100 e divide pelo total de alunos para obter a porcentagem.
Caso você quisesse calcular a porcentagem apenas com base nos alunos que têm notas registradas, poderia usar:
SELECT
(SELECT COUNT(*) FROM Notas) AS Total_Com_Notas,
(SELECT COUNT(*) FROM Notas WHERE nota >= 7.0) AS Alunos_Aprovados,
(ROUND(100.0 * (SELECT COUNT(*) FROM Notas WHERE nota >= 7.0) / (SELECT COUNT(*) FROM Notas), 2) || '%') AS Porcentagem;
Essa versão considera apenas os alunos que possuem uma nota cadastrada.
O critério correto depende da análise que você deseja fazer:
- Se quer a porcentagem de aprovados sobre todos os alunos, use a primeira consulta.
- Se quer a porcentagem de aprovados entre aqueles que fizeram a prova, use a segunda.
Espero ter ajudado. Conte com o apoio do Fórum na sua jornada. Fico à disposição.
Abraços e bons estudos!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado