Olá pessoal.
Vou transcrever aqui as minhas soluções para os exercícios do curso SQLite Online: Executando consultas SQL, para quem possa interessar e também para minha própria referencia futura. Estou aberto a revisões e sugestões também.
-- Média de geral de cada disciplina.
SELECT Nome_Disciplina, AVG(Notas.Nota) as Média FROM Disciplinas
JOIN Notas ON Disciplinas.ID_Disciplina = Notas.ID_Disciplina
GROUP BY Disciplinas.ID_Disciplina;
-- Somente História
SELECT Nome_Disciplina, AVG(Notas.Nota) as Média FROM Disciplinas
JOIN Notas ON Disciplinas.ID_Disciplina = Notas.ID_Disciplina
WHERE Nome_Disciplina = "História";
-- Informações dos Alunos que começam com A
SELECT * FROM Alunos WHERE Nome_Aluno LIKE 'A%';
-- Informações dos Alunos que Nasceram em Fevereiro
SELECT * FROM Alunos WHERE strftime('%m', Data_Nascimento) = '02';
-- Informações dos Alunos com idade
SELECT *, CAST((julianday(CURRENT_DATE) - julianday(Data_Nascimento))/365 AS INTEGER) as Idade FROM Alunos;
-- Status de aprovação dos Alunos
SELECT
Alunos.ID_Aluno,
Alunos.Nome_Aluno,
Disciplinas.ID_Disciplina,
Disciplinas.Nome_Disciplina,
AVG(Notas.Nota) as Media,
CASE WHEN AVG(Notas.Nota) >= 6 THEN 'Aprovado'
ELSE 'Reprovado' END
AS Status_Aprovacao
FROM Alunos
JOIN Notas ON Notas.ID_Aluno = Alunos.ID_Aluno
JOIN Disciplinas ON Disciplinas.ID_Disciplina = Notas.ID_Disciplina
GROUP BY Alunos.ID_Aluno, Disciplinas.ID_Disciplina;