Menu
Coddy logo textTech

Aggregation Functions

Fait partie de la section Les fondamentaux du Journey SQL de Coddy — leçon 68 sur 72.

Les fonctions d'agrégation sont utilisées pour calculer le AVG() ou MAX() ou toute autre fonction d'agrégation jusqu'à la ligne courante.
Par exemple, nous pourrions calculer le revenu maximum que nous avons obtenu jusqu'à chaque période de fin :

moisrevenurégion
440Est
520Est
660Ouest
755Ouest
861Est
SELECT month, revenue, MAX(revenue) OVER (ORDER BY month ASC) as max_revenue
from table1

Cela retournera :

moisrevenumax_revenu
44040
52040
66060
75560
86161

Pour les mois 4 et 5, le revenu maximum est de 40, pour les mois 5 et 6, le revenu est de 60 et pour le mois 8, il est de 61. C'est parce que lorsqu'il trouve un nouveau revenu plus élevé, il abandonne l'ancien et utilise le plus grand jusqu'à présent.

Pour la fonction AVG() cela ressemblera à ceci :

SELECT month, revenue, AVG(revenue) OVER (ORDER BY month ASC) as avg_revenue
from table1
moisrevenurevenu_moyen
44040
52030
66040
75543.75
86147.2

Nous pouvons également regrouper nos calculs par catégories spécifiques en utilisant PARTITION BY. Par exemple :

SELECT month, revenue, region,
MAX(revenue) OVER (PARTITION BY region ORDER BY month ASC) as max_revenue
FROM table1

Nous donnerait :

moisrevenurégionrevenu_max
440Est40
520Est40
660Ouest60
755Ouest60
861Est61

Maintenant, le maximum est calculé séparément pour chaque région. La région Est et la région Ouest maintiennent leurs propres maximums en cours de manière indépendante.

challenge icon

Défi

Facile

Tables et colonnes disponibles :

  • <strong>books</strong>: <strong>book</strong>, <strong>page</strong>, <strong>words</strong>

Pour chaque livre, affichez le nom du livre, son nombre total de pages, le nombre de mots sur chaque page, et calculez :

  1. Le nombre maximum de mots trouvé sur n'importe quelle page de ce livre
  2. Le nombre moyen de mots par page pour l'ensemble du livre
  3. La différence entre les mots de la page actuelle et la moyenne de mots par page du livre

Affichez les résultats triés par livre et numéro de page.

Retournez les colonnes suivantes :

  • book
  • page
  • words
  • max_words_in_book
  • avg_words_per_page
  • diff_from_avg

Aide-mémoire

Les fonctions de fenêtre avec agrégation calculent des valeurs sur un ensemble de lignes liées à la ligne courante. Utilisez la clause OVER avec ORDER BY pour les calculs cumulatifs :

SELECT column, 
       MAX(column) OVER (ORDER BY column ASC) as running_max,
       AVG(column) OVER (ORDER BY column ASC) as running_avg
FROM table

Utilisez PARTITION BY pour regrouper les calculs par catégories :

SELECT column, category,
       MAX(column) OVER (PARTITION BY category ORDER BY column ASC) as max_per_category
FROM table

Cela calcule le maximum séparément pour chaque catégorie, en maintenant des calculs cumulatifs indépendants.

Essayez vous-même

quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Les fondamentaux