Acceder a valores de la siguiente fila
Con la función LEAD() puedes acceder a datos de una fila posterior en la misma consulta, sin usar la sentencia GROUP BY. Así podrás comparar fácilmente valores de una lista ordenada.
Esta es la sintaxis:
LEAD(numeric_expression) OVER ([PARTITION BY column] ORDER BY column)
En este ejercicio te familiarizarás con la comparación de los valores de la fila actual con los de la fila siguiente.
Seleccionarás información sobre los votantes de Francia y ordenarás los resultados por votos totales en orden ascendente. El objetivo es analizar cómo se compara el número de votos de cada votante con el número de votos registrado para la siguiente persona de la lista.
Este ejercicio forma parte del curso
Funciones para manipular datos en SQL Server
Instrucciones del ejercicio
- Crea una columna nueva que muestre el número de votos registrado para la siguiente persona de la lista.
- Crea una columna nueva con la diferencia entre el
total_votesdel votante actual y los votos de la siguiente persona.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
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;