SELECT nome_aluno, MAX(nota) as maior_nota
FROM Alunos A
JOIN Notas N ON A.ID_Aluno = N.ID_Aluno
JOIN Disciplinas D ON D.ID_Disciplina = N.ID_Disciplina
WHERE D.Nome_Disciplina = 'Matemática'
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!
SELECT nome_aluno, MAX(nota) as maior_nota
FROM Alunos A
JOIN Notas N ON A.ID_Aluno = N.ID_Aluno
JOIN Disciplinas D ON D.ID_Disciplina = N.ID_Disciplina
WHERE D.Nome_Disciplina = 'Matemática'
Fala, Estudante! Tudo bom?
Agradeço por trazer sua solução para o fórum!
Curti demais como trabalhou a função de agregação MAX() para identificar a maior nota em SQL, entendeu perfeitamente a importância do JOIN entre tabelas para relacionar alunos, notas e disciplinas e usou bem a cláusula WHERE para filtrar apenas os registros de Matemática.
Algo bem legal para complementar é incluir o GROUP BY para garantir que cada aluno apareça com sua maior nota corretamente. Dessa maneira:
SELECT A.nome_aluno, MAX(N.nota) AS maior_nota
FROM Alunos A
JOIN Notas N ON A.ID_Aluno = N.ID_Aluno
JOIN Disciplinas D ON D.ID_Disciplina = N.ID_Disciplina
WHERE D.Nome_Disciplina = 'Matemática'
GROUP BY A.nome_aluno;
Isso faz com que o resultado seja consistente e cada aluno seja exibido com sua maior nota em Matemática.
E algumas boas práticas que você pode adotar são:
maior_nota. ORDER BY e LIMIT para trazer apenas o aluno campeão da disciplina.Continue postando as suas soluções! Além de ganhar pontos de XP na plataforma, você pode ajudar outros estudantes no fórum.
Ah, uma pergunta: o que você prefere explorar mais agora, criar uma query que traga apenas o aluno com a maior nota ou listar todos os alunos com suas respectivas maiores notas?
Fico à disposição! E se precisar, conte sempre com o apoio do fórum.
Abraço e bons estudos!