Comparaison mois par mois
Pour comparer les mois, vous devez utiliser l’une des fonctions de fenêtre suivantes :
LAG(value, offset), qui renvoie une valeur située un nombre d’offset avant la ligne courante dans le rapport.LEAD(value, offset), qui renvoie une valeur située un nombre d’offset après la ligne courante dans le rapport.
Votre objectif est de créer un rapport qui affiche les vues mois par mois pour chaque pays. Quelques conseils :
- Vous devrez regrouper les dates par mois. Pour cela, vous pouvez utiliser la fonction
DATE_PART(). - Vous pouvez calculer le pourcentage de variation avec la formule suivante :
(value)/(previous_value) - 1. - Si aucune valeur d’offset n’est fournie dans les fonctions
LAG()ouLEAD(), la valeur par défaut est 1.
Comme la table s’arrête au milieu du mois de juin, la requête est configurée pour n’inclure que les données jusqu’à fin mai.
Cet exercice fait partie du cours
Réaliser des rapports en SQL
Instructions
- À partir de
web_data, récupérezcountry_idet utilisez une fonctionDATE_PART()pour créermonth. - Créez
month_viewsqui calcule le total des vues du mois. - Créez
previous_month_viewsqui récupère le total des vues du mois précédent pour le pays donné. - Créez le champ
perc_changequi calcule le pourcentage de variation de ce mois par rapport au mois précédent pour le pays donné ; une valeur négative représente une baisse des vues et une valeur positive représente une hausse.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
SELECT
-- Pull month and country_id
____ AS month,
____,
-- Pull in current month views
____ AS month_views,
-- Pull in last month views
____ AS previous_month_views,
-- Calculate the percent change
____ AS perc_change
FROM ____
WHERE date <= '2018-05-31'
GROUP BY ____;