Total cumulé
Fait partie de la section Au-delà des bases du Journey SQL de Coddy — leçon 25 sur 27.
Un total cumulé est SUM sur une fenêtre avec ORDER BY : cela transforme l'agrégat en un agrégat qui croît ligne par ligne.
SELECT day, amount,
SUM(amount) OVER (ORDER BY day) AS running_total
FROM revenueSans ORDER BY, la fenêtre couvre chaque ligne et vous obtiendriez le total général sur chaque ligne. Avec celle-ci, la fenêtre s'étend d'une ligne à la fois dans cet ordre, de sorte que chaque ligne ne voit qu'elle-même et tout ce qui la précède.
Ajoutez une clause PARTITION BY pour réinitialiser le total cumulé par groupe, par exemple le total cumulé des revenus par région, jour après jour.
Défi
FacileTables et colonnes disponibles :
<strong>revenue</strong>:<strong>region</strong>,<strong>day</strong>,<strong>amount</strong>
Retournez region, day, amount, et region_running_total : le cumul de amount pour cette région jusqu'à ce jour inclus. Le total cumulé doit se réinitialiser pour chaque région.
Utilisez PARTITION BY sur la fenêtre. Ordonnez par region, puis par day.
Aide-mémoire
Un total cumulé utilise SUM avec ORDER BY dans la fenêtre — la fenêtre s'étend ligne par ligne dans cet ordre :
SELECT day, amount,
SUM(amount) OVER (ORDER BY day) AS running_total
FROM revenueAjoutez PARTITION BY pour réinitialiser le total cumulé par groupe :
SELECT region, day, amount,
SUM(amount) OVER (PARTITION BY region ORDER BY day) AS region_running_total
FROM revenue
ORDER BY region, dayEssayez vous-même
SELECT region, day, amount,
-- SUM(amount) OVER (PARTITION BY region ORDER BY day)
FROM revenue
ORDER BY region, day
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Au-delà des bases
1Logique conditionnelle
CASE WHENCASE dans ORDER BYCOALESCE pour les NULLsNULLIF et IIFRécapitulatif - Présences3Agrégation conditionnelle
COUNT avec CASESUM avec CASEPivoter des lignes en colonnesRécapitulatif - Sources de trafic6Recettes d'analyse
Top-N par groupePourcentage du totalTotal cumuléGarder une ligne par cléRécapitulatif - Meilleurs clients