Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

0
respostas

[Projeto] Consultas no sqlite | Gerenciamento escolar.

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;