Pourcentage du total
Fait partie de la section Au-delà des bases du Journey SQL de Coddy. Leçon 24 sur 27.
La part de chaque ligne dans l’ensemble est un grand classique des fonctions de fenêtre : divisez la valeur de la ligne par la SUM de la même colonne sur l’ensemble de la fenêtre.
SELECT product, revenue,
revenue * 100.0 / SUM(revenue) OVER () AS pct
FROM salesUn OVER () vide signifie « l’ensemble des résultats ». Ajoutez un PARTITION BY pour calculer la part au sein d’un groupe à la place (par ex. OVER (PARTITION BY category) pour la part au sein de chaque category).
Multipliez par 100.0 (et non par 100) afin que la division reste flottante. Sinon, la division entière de SQLite arrondirait les petites parts à zéro.
Défi
FacileTables et colonnes disponibles :
sales:category,product,revenue
Pour chaque ligne, renvoyez :
categoryproductrevenuepct_of_category: la part du produit dans le chiffre d'affaires au sein de sa catégorie, arrondie à 1 décimale
Utilisez un PARTITION BY sur la fenêtre. Triez par category, puis par pct_of_category par ordre décroissant.
Essayez vous-même
SELECT category, product, revenue,
-- pct en tant que part au sein de la catégorie, utiliser PARTITION BY
FROM sales
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 NULLNULLIF et IIFRécapitulatif - Présence3Agrégation conditionnelle
COUNT avec CASESUM avec CASEPivoter les lignes en colonnesRécapitulatif - Sources de trafic6Recettes d’analyse
Top-N par groupePourcentage du totalTotal cumuléGarder une ligne par cléRécapitulatif - Meilleurs clientsEntraînez-vous par vous-même : Playground SQL