Accéder aux valeurs de la ligne précédente
En utilisant la fonction LAG() dans une requête, vous pouvez accéder aux lignes qui précèdent la ligne actuelle.
Voici la syntaxe :
LAG(numeric_expression) OVER ([PARTITION BY column] ORDER BY column)
Dans cet exercice, vous allez utiliser cette fonction dans votre requête. Vous analyserez les évaluations des barres de chocolat produites par une entreprise appelée « Fruition ».
Cette entreprise produit du chocolat avec du cacao provenant de différentes régions du monde.
Vous voulez vérifier s'il existe une corrélation entre le pourcentage de cacao et la note reçue, pour les barres provenant du même endroit. Pour ce faire, vous comparerez le pourcentage de cacao de chaque barre avec le pourcentage de la barre qui a reçu l'évaluation précédente. Ensuite, vous calculerez l'écart entre ces valeurs et interpréterez les résultats.
Cette activité fait partie du cours
Fonctions pour manipuler les données dans SQL Server
Instructions de l’exercice
- Créez une nouvelle colonne affichant le pourcentage de cacao de la barre de chocolat ayant reçu une note inférieure, avec du cacao provenant du même endroit (
broad_bean_originest identique). - Créez une nouvelle colonne indiquant la différence entre le pourcentage de cacao de la barre actuelle et le pourcentage de la barre précédente.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
SELECT
broad_bean_origin AS bean_origin,
rating,
cocoa_percent,
-- Retrieve the cocoa % of the bar with the previous rating
___(___)
OVER(___ broad_bean_origin ORDER BY ___) AS percent_lower_rating
FROM ratings
WHERE company = 'Fruition'
ORDER BY broad_bean_origin, rating ASC;