Menu
CoddyTech

Fonctions d’agrégation

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

Avec OVER (ORDER BY ...), les fonctions d’agrégation telles que AVG() ou MAX() sont calculées sur les lignes jusqu’à la ligne actuelle incluse, y compris les lignes qui ont la même valeur ORDER BY. Sans ORDER BY dans OVER, elles sont calculées sur toutes les lignes, donc chaque ligne obtient la même valeur.
Par exemple, nous pourrions calculer le chiffre d’affaires maximal réalisé jusqu’à chaque période de fin :

monthrevenueregion
440East
520East
660West
755West
861East
SELECT month, revenue, MAX(revenue) OVER (ORDER BY month ASC) as max_revenue
from table1

Cela renverra :

monthrevenuemax_revenue
44040
52040
66060
75560
86161

Pour les mois 4 et 5, le revenu maximal est de 40 ; pour les mois 6 et 7, il 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 élevé trouvé jusqu’alors.

Pour la fonction AVG(), cela ressemblera à ceci :

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

Nous pouvons également regrouper nos calculs par catégories précises à l’aide de PARTITION BY. Par exemple :

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

Cela nous donnerait :

moischiffre d’affairesrégionmax_revenue
440East40
520East40
660West60
755West60
861East61

Maintenant, le maximum est calculé séparément pour chaque région. Les régions Est et Ouest maintiennent chacune leur propre maximum courant, indépendamment l’une de l’autre.

challenge icon

Défi

Facile

Tables et colonnes disponibles :

  • books : book, page, words

Pour chaque livre, affiche le nom du livre, le nombre total de pages, le nombre de mots sur chaque page et calcule :

  1. Le nombre maximal de mots trouvés sur une page de ce livre
  2. Le nombre moyen de mots par page pour le livre entier
  3. La différence entre le nombre de mots de la page actuelle et le nombre moyen de mots par page du livre

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

Renvoie les colonnes suivantes :

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

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

Entraînez-vous par vous-même : Playground SQL