Les fonctions d'agrégation en SQL permettent d'effectuer des calculs sur plusieurs lignes d'une colonne et de retourner une seule valeur. Elles sont essentielles pour résumer des données, générer des rapports et réaliser des analyses statistiques. Cette leçon couvre les fonctions d'agrégation les plus courantes avec des exemples pratiques basés sur la base Sakila.
COUNT() — Compte le nombre de lignesSyntaxe :
COUNT(expression)
Exemple :
SELECT COUNT(*) AS total_paiements
FROM payment;
Résultat : Retourne le nombre total de lignes dans la table payment.
COUNT(column) vs COUNT(*)Ces deux formes se ressemblent, mais elles ne sont pas identiques :
COUNT(*) compte toutes les lignes du jeu de résultats ;COUNT(column) compte uniquement les lignes où column est NOT NULL.Donc, si la colonne contient des valeurs NULL, COUNT(column) peut renvoyer un nombre inférieur à COUNT(*).
Exemple (Sakila) :
SELECT
COUNT(*) AS total_locations,
COUNT(return_date) AS locations_retournees
FROM rental;
Explication :
total_locations compte toutes les lignes de rental ;locations_retournees compte seulement les lignes où return_date est renseignée ;return_date = NULL, donc elles sont exclues de COUNT(return_date).SUM() — Calcule la somme des valeursSyntaxe :
SUM(expression)
Exemple :
SELECT SUM(amount) AS montant_total
FROM payment;
Résultat : Retourne la somme totale de la colonne amount.
AVG() — Calcule la valeur moyenneSyntaxe :
AVG(expression)
Exemple :
SELECT AVG(amount) AS montant_moyen
FROM payment;
Résultat : Retourne la valeur moyenne de la colonne amount.
MIN() — Trouve la valeur minimaleSyntaxe :
MIN(expression)
Exemple :
SELECT MIN(amount) AS montant_min
FROM payment;
Résultat : Retourne la plus petite valeur de la colonne amount.
MAX() — Trouve la valeur maximaleSyntaxe :
MAX(expression)
Exemple :
SELECT MAX(amount) AS montant_max
FROM payment;
Résultat : Retourne la plus grande valeur de la colonne amount.
COUNT(*) pour connaître le nombre de clients dans la base.SELECT COUNT(*) AS total_clients
FROM customer;
SUM(amount) avec GROUP BY staff_id pour voir les ventes par employé.SELECT staff_id, SUM(amount) AS total_employe
FROM payment
GROUP BY staff_id;
AVG(amount) avec GROUP BY customer_id.SELECT customer_id, AVG(amount) AS paiement_moyen
FROM payment
GROUP BY customer_id;
Les fonctions d'agrégation SQL sont des outils puissants pour résumer et analyser les données. Maîtriser COUNT, SUM, AVG, MIN et MAX vous aidera à générer des rapports pertinents et des analyses à partir de votre base. Pratiquez ces fonctions avec la base Sakila pour renforcer vos compétences SQL.