Accéder aux valeurs de la ligne suivante
Avec la fonction LEAD(), vous pouvez accéder aux données d'une ligne subséquente dans la même requête, sans utiliser l'instruction GROUP BY. Vous pouvez ainsi comparer facilement des valeurs dans une liste ordonnée.
Voici la syntaxe :
LEAD(numeric_expression) OVER ([PARTITION BY column] ORDER BY column)
Dans cet exercice, vous allez vous familiariser avec la comparaison des valeurs de la ligne actuelle avec celles de la ligne suivante.
Vous sélectionnerez des renseignements sur les électeurs de France et classerez les résultats par nombre total de votes, en ordre croissant. L'objectif est d'analyser comment le nombre de votes de chaque électeur se compare au nombre de votes enregistré pour la personne suivante dans la liste.
Cette activité fait partie du cours
Fonctions pour manipuler les données dans SQL Server
Instructions de l’exercice
- Créez une nouvelle colonne qui affiche le nombre de votes enregistré pour la personne suivante dans la liste.
- Créez une nouvelle colonne avec la différence entre le
total_votesde l'électeur actuel et les votes de la personne suivante.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
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;