1
resposta

Resolução Exercício - Encontrando a maior nota

SELECT
    *
FROM (
    SELECT
        n.id_nota
    ,	n.id_aluno
    ,	(
            SELECT
                a.nome
            FROM alunos AS a
            WHERE a.id_aluno = n.id_aluno
        ) AS nome_aluno
    ,	n.nota
    ,	RANK() OVER (ORDER BY n.Nota DESC) AS rank_val
    FROM notas AS n
) AS t1
WHERE rank_val = 1
;
1 resposta

Ei! Tudo bem, Carlos?

Excelente resolução!

O seu código funciona perfeitamente para o objetivo do exercício: ele calcula o ranking das notas em ordem decrescente na subquery e, na consulta externa, filtra apenas a linha de maior valor. Além disso, caso haja um empate (mais de um aluno tirando a nota máxima), o trará todas as linhas empatadas na primeira posição, o que é estatisticamente o mais correto para essa análise.

Parabéns pela excelente solução utilizando o ranking!

Conteúdo para complementar seus estudos
Esse conteúdo pode estar em inglês, para traduzi-lo utilize o tradutor automático do navegador ou clique com o botão direito do mouse sobre a página e selecione a opção Traduzir para o português.
Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!