Fonctions d'agrégation de base
Dans cette étape, nous explorerons les fonctions d'agrégation fondamentales dans MySQL. Ces fonctions effectuent des calculs sur plusieurs lignes et renvoient une seule valeur, ce qui les rend essentielles pour l'analyse de données.
Tout d'abord, connectons-nous à MySQL et sélectionnons notre base de données :
sudo mysql -u root
Une fois connecté :
USE sales_db;
Fonction COUNT
Commençons par la fonction COUNT, qui compte le nombre de lignes dans un ensemble de résultats :
-- Compter le nombre total de ventes
SELECT COUNT(*) as total_sales
FROM sales;
Vous devriez voir une sortie comme celle-ci :
+--------------+
| total_sales |
+--------------+
| 12 |
+--------------+
COUNT peut être utilisé de différentes manières :
-- Compter les produits uniques vendus
SELECT COUNT(DISTINCT product_name) as unique_products
FROM sales;
-- Compter les ventes par catégorie
SELECT category, COUNT(*) as sales_count
FROM sales
GROUP BY category;
Explication :
COUNT(*)
compte toutes les lignes de la table, y compris les valeurs NULL
COUNT(DISTINCT column)
compte seulement les valeurs uniques dans la colonne spécifiée
- Lorsqu'il est utilisé avec GROUP BY, COUNT calcule les totaux pour chaque groupe séparément
- Le mot-clé
as
crée des alias pour les colonnes de résultat, rendant la sortie plus lisible
Fonction SUM
La fonction SUM calcule le total des colonnes numériques :
-- Calculer la quantité totale vendue
SELECT SUM(quantity) as total_items_sold
FROM sales;
-- Calculer le revenu total
SELECT
ROUND(SUM(quantity * unit_price), 2) as total_revenue
FROM sales;
Explication :
- SUM ne peut être utilisé qu'avec des colonnes numériques
- Des calculs comme
quantity * unit_price
sont effectués avant l'agrégation
- ROUND(x, 2) arrondit les nombres à 2 décimales
- Pour les calculs de revenu, la multiplication se fait avant la sommation pour maintenir la précision
Fonction AVG
La fonction AVG calcule la valeur moyenne :
-- Calculer le prix unitaire moyen
SELECT
ROUND(AVG(unit_price), 2) as avg_price
FROM sales;
-- Calculer la quantité moyenne par vente
SELECT
ROUND(AVG(quantity), 1) as avg_quantity
FROM sales;
Explication :
- AVG ignore automatiquement les valeurs NULL dans ses calculs
- Le deuxième paramètre de ROUND spécifie le nombre de décimales
- Les résultats sont automatiquement convertis en type DECIMAL pour plus de précision
- AVG est couramment utilisé pour trouver les valeurs typiques dans vos données
Fonctions MAX et MIN
Ces fonctions trouvent les valeurs les plus élevées et les plus basses :
-- Trouver la plage de prix des produits
SELECT
MIN(unit_price) as lowest_price,
MAX(unit_price) as highest_price
FROM sales;
-- Trouver les dates de la première et de la dernière vente
SELECT
MIN(sale_date) as first_sale,
MAX(sale_date) as last_sale
FROM sales;
Explication :
- MIN/MAX fonctionnent avec des nombres, des chaînes de caractères et des dates
- Pour les dates, MIN trouve la date la plus ancienne tandis que MAX trouve la date la plus récente
- Plusieurs fonctions d'agrégation peuvent être combinées dans une seule instruction SELECT
- Comme les autres fonctions d'agrégation, elles ignorent automatiquement les valeurs NULL
- Ces fonctions sont utiles pour trouver les plages de valeurs et les limites dans vos données