Comparaison d'un mois à l'autre
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 offset de lignes avant la ligne courante du rapport.LEAD(value, offset), qui renvoie une valeur située un nombre offset de lignes après la ligne courante du rapport.
Votre objectif est de bâtir un rapport qui montre, pour chaque pays, les consultations d'un mois à l'autre. Quelques conseils :
- Vous devrez regrouper les dates par mois. Pour ce faire, 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 offset n'est fournie aux fonctions
LAG()ouLEAD(), la valeur par défaut est 1.
Comme la table s'arrête au milieu de juin, la requête est configurée pour n'inclure que les données jusqu'à la fin de mai.
Cette activité fait partie du cours
Création de rapports en SQL
Instructions de l’exercice
- À partir de
web_data, récupérezcountry_idet utilisez la fonctionDATE_PART()pour créermonth. - Créez
month_viewsqui calcule le total des consultations pour le mois. - Créez
previous_month_viewsqui calcule le total des consultations 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é, où une valeur négative représente une baisse des consultations et une valeur positive, une hausse.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
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 ____;