Acessando valores da próxima linha
Com a função LEAD(), você consegue acessar dados de uma linha subsequente na mesma consulta, sem usar a instrução GROUP BY. Assim, fica fácil comparar valores de uma lista ordenada.
Esta é a sintaxe:
LEAD(numeric_expression) OVER ([PARTITION BY column] ORDER BY column)
Neste exercício, você vai se familiarizar com a comparação de valores da linha atual com os valores da próxima linha.
Você vai selecionar informações sobre os eleitores da França e ordenar os resultados por votos totais, em ordem crescente. O objetivo é analisar como o número de votos de cada eleitor se compara ao número de votos registrado para a próxima pessoa na lista.
Este exercício faz parte do curso
Funções para manipular dados no SQL Server
Instruções do exercício
- Crie uma nova coluna mostrando o número de votos registrado para a próxima pessoa na lista.
- Crie uma nova coluna com a diferença entre o
total_votesdo eleitor atual e os votos da próxima pessoa.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
SELECT
first_name,
last_name,
total_votes AS votes,
-- Select the number of votes of the next voter
___(___) OVER (___ total_votes) AS votes_next_voter,
-- Calculate the difference between the number of votes
LEAD(___) ___ (ORDER BY ___) - total_votes AS votes_diff
FROM voters
WHERE country = 'France'
ORDER BY total_votes;