Segue a resolução dos exercicos propostos:
--Consulta 1: Retorne todas as disciplinas
SELECT * FROM Disciplinas;
--Consulta 2: Retorne os alunos que estão aprovados na disciplina de matemática
SELECT A.Nome_Aluno, N.Nota, D.Nome_Disciplina
FROM Alunos A
INNER JOIN Notas N ON A.ID_Aluno = N.ID_Nota
INNER JOIN Disciplinas D ON D.ID_Disciplina = N.ID_Disciplina
WHERE D.Nome_Disciplina = 'Matemática' AND N.Nota >= '7'
ORDER BY NOTA DESC;
--Consulta 3: Identificar o total de disciplinas por turma
SELECT COUNT(TD.ID_Disciplina) AS TOTAL_DISCIPLINA, T.Nome_Turma
FROM Disciplinas D
INNER JOIN Turma_Disciplinas TD ON D.ID_Disciplina = TD.ID_Disciplina
INNER JOIN Turmas T ON T.ID_Turma = TD.ID_Turma
GROUP BY T.Nome_Turma;
--Consulta 4: Porcentagem dos alunos que estão aprovados
SELECT
(SELECT COUNT(*) FROM Alunos) AS Total_Alunos,
(SELECT COUNT(*) FROM Alunos a JOIN Notas n ON n.ID_Aluno = a.ID_Aluno WHERE n.Nota >= 7.0) AS Alunos_Aprovados,
(SELECT COUNT(*) FROM Notas) AS Total_Notas,
(ROUND(100.0 * (SELECT COUNT(*) FROM Alunos a JOIN Notas n ON n.ID_Aluno = a.ID_Aluno WHERE n.Nota >= 7.0) / (SELECT COUNT(*)
FROM Notas), 2) || '%') AS Porcentagem
--Consulta 5: Porcentagem dos alunos que estão aprovados por disciplina
SELECT d.Nome_Disciplina AS Disciplina,
COUNT(*) AS Total_Alunos,
SUM(CASE WHEN n.Nota >= 7.0 THEN 1 ELSE 0 END) AS Alunos_Aprovados,
ROUND (SUM(CASE WHEN n.Nota >= 7.0 THEN 1 ELSE 0 END) * 100.0 / COUNT(*), 2) || '%' AS Porcentagem_Aprovados
FROM Alunos a
INNER JOIN Notas n ON n.ID_Aluno = a.ID_Aluno
INNER JOIN Disciplinas d ON d.ID_Disciplina = n.ID_Disciplina
GROUP BY Disciplina;