1
resposta

resposta do exercício

Apenas um alerta: Apesar do resultado do row_number neste caso em específico ser igual ao resultado da função rank, é incorreto dizer que a função row_number serve para gerar rankings. ele serve para gerar números sequenciais.

1 resposta

Oi, Lucas! Tudo bom?

Muito obrigado por trazer esse ponto, sua observação é muito pertinente! De fato, a função ROW_NUMBER() gera números sequenciais únicos, respeitando a ordenação definida, e não deve ser confundida com uma função de ranqueamento no sentido estrito.

Apesar de, em alguns casos, ela gerar um resultado semelhante ao da função RANK(), o comportamento é diferente principalmente quando há empates: enquanto RANK() atribui a mesma posição a valores iguais, ROW_NUMBER() sempre gera valores distintos e consecutivos.

Esse tipo de cuidado com os detalhes demonstra uma ótima evolução no entendimento do SQL. Se quiser se aprofundar mais sobre as diferenças entre ROW_NUMBER(), RANK() e DENSE_RANK(), deixo uma sugestão aqui:

Ícone de sugestão Para saber mais:

Sugestão de conteúdo para você mergulhar ainda mais sobre o tema:

Fico à disposição! E se precisar, conte sempre com o apoio do fórum.

Abraço e bons estudos!

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