Retour à la liste des articles Articles
8 minutes de lecture

L'aide-mémoire des fonctions agrégées SQL

Un guide de référence rapide pour l'utilisation des fonctions agrégées SQL.

Cet aide-mémoire sur les fonctions agrégées SQL est conçu pour vous accompagner lorsque vous utilisez SQL pour l'analyse de données.

L'agrégation de données est essentielle pour toute analyse de données significative. SQL fournit un ensemble de fonctions qui vous permettent d'inclure des totaux, des moyennes et des comptages dans vos rapports et d'extraire les valeurs minimales et maximales de n'importe quelle colonne de données.

Dans cette antisèche, nous allons démontrer les fonctions d'agrégation SQL suivantes :

  • SUM() - Renvoie le total de toutes les valeurs.
  • AVG() - Renvoie la moyenne de toutes les valeurs.
  • COUNT() - Compte et renvoie le nombre de valeurs.
  • MIN() - Renvoie la plus petite valeur.
  • MAX() - Renvoie la plus grande valeur.

Nous verrons également comment utiliser les fonctions d'agrégation :

  • Avec GROUP BY.
  • Pour ordonner les données.
  • Comme condition de filtrage.

Si vous n'avez jamais utilisé SQL, vous pouvez commencer par vous inscrire à notre cours SQL pour les débutants . Ce cours convient aux débutants absolus ; ses 129 exercices interactifs vous aideront à acquérir rapidement des compétences et de l'assurance. Vous pouvez apprendre depuis le confort de votre domicile - et vous n'avez pas besoin d'installer de logiciel, puisque vous utiliserez notre base de données en ligne par le biais de votre navigateur.

Fonctions agrégées SQL courantes

Tous les exemples de cette antisèche utilisent les données suivantes, contenues dans une table nommée orders.

departmentcustomeritemqtytot_valuedate_paid
125Kettle1152024-01-15
118Toaster440
216Mug12182024-01-22
325Desk4120
216Dinner Plate12242024-01-22
318Office Chair2362024-01-17
120Lamp345
210Cutlery Set1302024-01-22

SUM()

La fonction SUM() renvoie la somme totale d'une colonne de nombres.

Exemple:

SELECT SUM(tot_value) 
FROM orders;

Résultat :

SUM(tot_value)
328

Pour plus d'informations sur l'utilisation de la fonction SUM(), voir notre livre de recettes How to Sum Values of a Column in SQL.

Pour d'autres exemples de la fonction SUM(), voir notre article La fonction SQL SUM() expliquée avec 5 exemples pratiques.

AVG()

La fonction AVG() renvoie la valeur moyenne d'une colonne de nombres.

Exemple:

SELECT AVG(qty) 
FROM orders;

Résultat :

AVG(qty)
4.875

Pour plus d'informations sur l'utilisation de la fonction AVG(), voir notre livre de recettes How to Find the Average of a Numeric Column in SQL.

Pour d'autres exemples d'utilisation de la fonction AVG(), voir notre article La fonction SQL AVG() expliquée avec des exemples.

COUNT()

La fonction COUNT() renvoie le nombre de lignes (c'est-à-dire de valeurs) dans une colonne donnée. Il existe trois façons différentes d'utiliser cette fonction.

COUNT(*)

Cette option vous donne le nombre total de lignes retournées par votre requête.

Exemple:

SELECT COUNT(*) 
FROM orders;

Résultat :

COUNT(*)
8

COUNT(nom_de_la_colonne)

Cette option vous donne le nombre de lignes de votre requête où la colonne nommée ne contient pas de valeur NULL.

Exemple: L'exemple montre le nombre de commandes qui ont été passées dans le cadre de l'enquête :

L'exemple montre le nombre de commandes qui ont été payées, c'est-à-dire les commandes où date_paid n'est pas NULL.

SELECT COUNT(date_paid) 
FROM orders;

Résultat :

COUNT(date_paid)
5

COUNT(DISTINCT nom_de_colonne)

Cette option vous donne le nombre de valeurs uniques dans la colonne nommée.

Exemple:

Indiquons le nombre de clients différents qui ont passé des commandes.

SELECT COUNT(DISTINCT customer) 
FROM orders;

Résultat : COUNT(DISTINCT nom_colonne)

COUNT(DISTINCT customer)
5

Pour plus d'informations sur la fonction COUNT(), consultez notre livre de recettes How to Count the Number of Rows in a Table in SQL.

Pour d'autres exemples d'utilisation de la fonction COUNT(), voir notre article La fonction SQL Count expliquée avec 7 exemples.

Pour plus d'informations sur l'utilisation de COUNT(DISTINCT), voir Comment compter des valeurs distinctes en SQL

Pour plus d'informations sur la différence entre COUNT(*), COUNT(column), et COUNT(DISTINCT), voir Quelle est la différence entre COUNT(*), COUNT(1), COUNT(colonne), et COUNT(DISTINCT) ?

MIN()

La fonction MIN() renvoie la plus petite valeur d'une colonne. Cette fonction fonctionne avec la plupart des types de données, y compris les nombres, les chaînes de caractères (la première dans l'ordre alphabétique) et les dates (c'est-à-dire la date la plus ancienne).

Exemple:

SELECT MIN(tot_value) 
FROM orders;

Résultat :

MIN(tot_value)
15.00

Pour plus d'informations sur l'utilisation de la fonction MIN(), consultez notre livre de recettes How to Find the Minimum Value of a Column in SQL.

Pour d'autres exemples de la fonction MIN(), voir notre article Les fonctions SQL MIN et MAX expliquées en 6 exemples.

MAX()

La fonction MAX() renvoie la plus grande valeur d'une colonne. Cette fonction fonctionne avec la plupart des types de données, y compris les nombres, les chaînes (la dernière dans l'ordre alphabétique) et les dates (c'est-à-dire la date la plus récente).

Exemple:

SELECT MAX(date_paid) 
FROM orders;

Résultat :

MAX(date_paid)
2024-01-24

Pour plus d'informations sur l'utilisation de la fonction MAX(), voir Comment trouver la valeur maximale d'une colonne numérique en SQL.

Pour d'autres exemples, voir Les fonctions SQL MIN et MAX expliquées en 6 exemples.

Utilisation des fonctions agrégées SQL avec GROUP BY

Dans les exemples ci-dessus, les agrégats ont été calculés à partir de la table entière. Cependant, vous avez souvent besoin d'agrégats divisés en groupes, par exemple pour calculer la valeur totale des commandes par client ou la quantité moyenne commandée par département.

En SQL, la clause GROUP BY crée les groupes que nous utilisons pour l'agrégation. Cette clause supprime les lignes individuelles afin que le rapport contienne une ligne par groupe défini. Si vous effectuez un regroupement par client, vous verrez une ligne pour chaque client. Cette ligne contient les informations comprimées que vous avez demandées. Vous pouvez regrouper les clients en fonction de plusieurs critères ; par exemple, vous pouvez regrouper les clients en fonction de leur zone géographique pour obtenir les clients de chaque zone.

Pour plus d'informations sur le regroupement en SQL, consultez notre article Explication de GROUP BY en SQL.

Exemple :

SELECT customer, SUM(tot_value)
FROM orders
GROUP BY customer;

Résultat :

customerSUM(tot_value)
1030.00
1642.00
1876.00
2045.00
25135.00

La colonne par laquelle vous effectuez le regroupement est généralement incluse dans votre liste SELECT, sinon le résultat n'est pas significatif. La liste SELECT ne peut inclure que la colonne par laquelle vous effectuez le regroupement, vos fonctions agrégées et les valeurs littérales. Si une colonne qui n'est pas utilisée dans un agrégat et qui n'est pas incluse dans la clause GROUP BY est répertoriée, vous obtiendrez un message d'erreur.

Vous pouvez inclure plus d'une fonction d'agrégation dans votre requête et vous pouvez regrouper par plus d'une colonne. Énumérez-les du groupe principal au groupe secondaire, en les séparant par des virgules.

Pour plus d'informations, consultez les articles suivants

Si vous avez besoin de vous entraîner à utiliser des agrégats avec des groupes, consultez La pratique du SQL: 10 exercices pratiques GROUP BY avec des solutions détaillées.

Utilisation des fonctions agrégées SQL pour ordonner vos données

Vous pouvez vouloir ordonner vos résultats en fonction d'une colonne agrégée. Comme ORDER BY est calculé après GROUP BY, vous pouvez utiliser les fonctions d'agrégat directement dans la clause ORDER BY.

Exemple :

Vous pouvez regrouper les commandes par client, puis afficher les clients en fonction de la valeur totale de leurs commandes ; de cette façon, le client ayant la valeur la plus élevée apparaît en haut de la liste.

SELECT customer, sum(tot_value)
FROM orders
GROUP BY customer
ORDER BY sum(tot_value) DESC;

Résultat :

customerSUM(tot_value)
25135.00
1876.00
2045.00
1642.00
1030.00

Vous pouvez spécifier un agrégat dans la clause ORDER BY en utilisant exactement le même format que celui que vous avez utilisé lorsque vous l'avez spécifié dans votre liste de colonnes à sélectionner. La clause DESC ordonne les lignes de la plus haute à la plus basse.

Pour plus d'informations sur le tri par les fonctions d'agrégat, consultez ces livres de recettes SQL :

Utilisation des fonctions agrégées SQL pour filtrer vos données

Parfois, vous voudrez filtrer par une colonne d'agrégat. Pour filtrer par un agrégat, utilisez la clause HAVING. En option, vous pouvez l'utiliser en conjonction avec la clause WHERE pour ajouter d'autres filtres sur des colonnes non agrégées.

Exemple :

Vous souhaitez obtenir une liste des clients qui ont payé plus d'une certaine valeur de marchandises afin de les inclure dans des offres spéciales.

SELECT customer, SUM(tot_value)
FROM orders
WHERE date_paid IS NOT NULL
GROUP BY customer
HAVING sum(tot_value) > 30
ORDER BY customer;

Résultat :

customerSUM(tot_value)
1642.00
1836.00

Pour filtrer les lignes par une fonction agrégée, vous devez utiliser la clause HAVING. La clause HAVING suit immédiatement la clause GROUP BY. En option, vous pouvez également inclure une clause WHERE et une clause ORDER BY.

Pour plus d'informations, consultez ces livres de recettes SQL :

Au-delà de l'aide-mémoire sur les fonctions agrégées SQL

Si vous souhaitez améliorer vos compétences en SQL, consultez notre offre de cours interactifs sur le langage SQL. Nous disposons d'une large gamme de cours pour différents niveaux de compétence SQL. Nous proposons également des cours spécialisés sur l'utilisation de SQL dans l'analyse de données.

Je recommande tout particulièrement notre parcours d'apprentissageLa pratique du SQL . Il contient 9 cours axés sur une pratique complète du langage SQL, y compris Les jointures en SQL et les fonctions d'agrégation. Les exercices sont réalisés sur des ensembles de données réalistes, tels qu'une base de données pour une université et un magasin. Nous publions également un nouveau cours de pratique SQL dans notre parcours Pratique SQL mensuelle.

Vous pouvez obtenir tous les cours ci-dessus et plus encore avec notre plan SQL Tout à vie. Il vous donne un accès à vie à tous les cours actuels et futurs sur notre plateforme. Bon apprentissage !