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 :
| mois | revenu | région |
| 4 | 40 | Est |
| 5 | 20 | Est |
| 6 | 60 | Ouest |
| 7 | 55 | Ouest |
| 8 | 61 | Est |
SELECT month, revenue, MAX(revenue) OVER (ORDER BY month ASC) as max_revenue
from table1Cela retournera :
| mois | revenu | max_revenu |
| 4 | 40 | 40 |
| 5 | 20 | 40 |
| 6 | 60 | 60 |
| 7 | 55 | 60 |
| 8 | 61 | 61 |
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| mois | revenu | revenu_moyen |
| 4 | 40 | 40 |
| 5 | 20 | 30 |
| 6 | 60 | 40 |
| 7 | 55 | 43.75 |
| 8 | 61 | 47.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 table1Nous donnerait :
| mois | revenu | région | revenu_max |
| 4 | 40 | Est | 40 |
| 5 | 20 | Est | 40 |
| 6 | 60 | Ouest | 60 |
| 7 | 55 | Ouest | 60 |
| 8 | 61 | Est | 61 |
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.
Défi
FacileTables 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 :
- Le nombre maximum de mots trouvé sur n'importe quelle page de ce livre
- Le nombre moyen de mots par page pour l'ensemble du livre
- 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 :
bookpagewordsmax_words_in_bookavg_words_per_pagediff_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 tableUtilisez 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 tableCela calcule le maximum séparément pour chaque catégorie, en maintenant des calculs cumulatifs indépendants.
Essayez vous-même
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
4More Keywords
The IN keywordThe BETWEEN keywordThe LIKE keywordThe AS keywordRecap - Cellphone Models2Conditions
Conditions BasicsThe AND keywordThe OR keywordThe NOT keywordMultiple Conditions CombinedParenthesisBooleans5Arithmetic Operations
Mathematical OperatorsMathematical ColumnsThe Modulo OperationThe ROUND() Function3Specific Return Format
Null valuesSort Results Part 1Sort Results Part 2Recap - Cyber Security FirmLimit number of recordsRecap - Vehicle Factory6Intro Challenges
Recap - Parliamentary ElectionRecap - Police Criminal ArrestRecap - Bar Beverage ContainerRecap - Engineer new columns9Multiple tables
Basic Join Part 1Basic Join Part 2Recap - JoinSelf joinRecap - Self JoinUnionSimplify queries, WITH keywordRecap - With QueriesRecap - Real Estate Contractor12Window Functions part 2
RANK & DENSE_RANK FunctionsRecap - RANK & DENSE_RANKNTILE FunctionAggregation FunctionsROWS & RANGE Criterion