1
resposta

Mão na massa: encontrando nome(s) do(s) aluno(s) com a maior nota

Aqui temos duas questões importantes a considerar:

  • O professor deseja apenas saber o(s) aluno(s) que obteve(iveram) a maior nota; e
  • Em caso de empate devemos retornar todos os alunos que obtiveram a melhor nota.
    Minha proposta de solução é esta:
SELECT DISTINCT a.Nome
FROM Alunos AS a
JOIN Notas AS n
  ON n.ID_aluno = a.ID_aluno
WHERE a.Curso = 'minha_disciplina'
  AND n.Nota = (
    SELECT MAX(n2.Nota)
    FROM Notas AS n2
    JOIN Alunos AS a2
      ON a2.ID_aluno = n2.ID_aluno
    WHERE a2.Curso = 'minha_disciplina'
  );

Com esta consulta o professor vai saber todos os alunos que tiraram a maior nota, apenas em sua disciplina, como a questão pede.

1 resposta

Oi, Marcos! Como vai?

Agradeço por compartilhar seu código com a comunidade Alura.

Gostei da forma como você estruturou sua solução, separando bem a lógica com a subconsulta para encontrar a maior nota e depois filtrando os alunos com base nesse valor.

Continue assim!

Qualquer dúvida que surgir, compartilhe no fórum. Abraços e bons estudos!

Alura

Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!