Accéder aux valeurs de la ligne suivante
Avec la fonction LEAD(), vous pouvez accéder aux données d’une ligne suivante dans la même requête, sans utiliser l’instruction GROUP BY. Vous pouvez ainsi comparer facilement des valeurs issues d’une liste ordonnée.
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 allez sélectionner des informations sur les électeurs en France et trier les résultats par nombre total de votes, par 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.
Cet exercice fait partie du cours
Fonctions de manipulation des données dans SQL Server
Instructions
- Créez une nouvelle colonne affichant 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 cet exemple de code.
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;