CodeGym /Cours /SQL SELF /Création de rapports de base

Création de rapports de base

SQL SELF
Niveau 59 , Leçon 2
Disponible

Avant de te perdre dans la syntaxe SQL et les variables, rappelle-toi : les fonctions d’agrégation, c’est tes meilleures potes pour compter tout et n’importe quoi. Elles t’aident à calculer des données globales, des moyennes et à faire plein de magie sur des gros volumes de lignes.

On utilise les fonctions d’agrégation pour faire des opérations mathématiques sur des groupes de lignes. Les principales :

  • SUM() : calcule la somme des valeurs.
  • AVG() : calcule la moyenne.
  • COUNT() : compte le nombre de lignes dans le résultat.

Les fonctions d’agrégation sont super utiles quand tu bosses avec beaucoup de données et que tu veux un rapport rapide : combien de commandes tu as, quel est le volume total, ou quel a été le plus gros ticket aujourd’hui. Regardons quelques fonctions d’agrégation.

Compter les lignes : la fonction COUNT()

La fonction COUNT() te permet de compter le nombre de lignes dans une table. On va voir comment ça marche avec des exemples.

-- Compter simplement toutes les lignes dans la table des commandes
SELECT COUNT(*) AS total_commandes
FROM orders;

-- Compter les clients uniques
SELECT COUNT(DISTINCT customer_id) AS clients_uniques
FROM orders;

-- Compter les commandes dont le montant est supérieur à 100
SELECT COUNT(*) AS commandes_valeur_elevee
FROM orders
WHERE total_amount > 100;

La fonction COUNT() est souvent utilisée pour compter les enregistrements, les valeurs uniques, et aussi avec des filtres, par exemple : "combien d’étudiants se sont inscrits aux cours de Python".

Faire des totaux : la fonction SUM()

La fonction SUM() calcule la somme des valeurs d’une colonne. Maintenant, on va additionner tous les achats des clients.

-- Calcul du chiffre d’affaires total
SELECT SUM(total_amount) AS chiffre_affaires_total
FROM orders;

-- Somme des achats d’un client précis
SELECT SUM(total_amount) AS depenses_client
FROM orders
WHERE customer_id = 101;

-- Somme des commandes par catégorie
SELECT category, SUM(total_amount) AS chiffre_affaires_categorie
FROM orders
GROUP BY category;

SUM(), c’est l’outil principal pour l’analyse des ventes, du chiffre d’affaires et de toutes les autres sommes. Par exemple, tu veux savoir les revenus d’un centre d’affaires le mois dernier ? Fastoche.

Valeurs moyennes : la fonction AVG()

La fonction AVG() sert à calculer la moyenne sur un ensemble de données. Par exemple, la note moyenne des étudiants ou le ticket moyen d’un client.

-- Ticket moyen d’une commande
SELECT AVG(total_amount) AS valeur_moyenne_commande
FROM orders;

-- Ticket moyen par catégorie
SELECT category, AVG(total_amount) AS valeur_moyenne_commande
FROM orders
GROUP BY category;

-- Ticket moyen des clients sur les 7 derniers jours
SELECT AVG(total_amount) AS ticket_moyen_semaine
FROM orders
WHERE order_date >= NOW() - INTERVAL '7 days';

La moyenne est utile pour analyser la qualité du service, repérer des anomalies et calculer des indicateurs clés, comme le bénéfice moyen par client.

Utiliser les fonctions d’agrégation en analytics

Maintenant qu’on connaît les fonctions de base, voyons comment les utiliser pour créer des rapports analytiques simples.

Exemple 1 : chiffre d’affaires total et nombre de commandes

Imaginons que tu veux savoir combien de commandes ont été passées et quel est le chiffre d’affaires total sur un mois.

SELECT
    COUNT(*) AS total_commandes,
    SUM(total_amount) AS chiffre_affaires_total
FROM orders
WHERE order_date >= '2023-10-01' AND order_date <= '2023-10-31';

Exemple 2 : chiffre d’affaires moyen par catégorie

Et si on veut ventiler le chiffre d’affaires par catégories de produits ?

SELECT
    category,
    COUNT(*) AS total_commandes,
    SUM(total_amount) AS chiffre_affaires_total,
    AVG(total_amount) AS valeur_moyenne_commande
FROM orders
GROUP BY category;

Exemple 3 : commandes sur les 7 derniers jours

Souvent, il faut analyser les métriques sur des périodes courtes, genre la semaine dernière.

SELECT
    COUNT(*) AS commandes_semaine,
    SUM(total_amount) AS chiffre_affaires_semaine,
    AVG(total_amount) AS ticket_moyen_semaine
FROM orders
WHERE order_date >= NOW() - INTERVAL '7 days';

Cas pratiques avec des tâches concrètes

Tâche : Analyse des ventes par région

Imaginons que tu es le boss d’une chaîne de magasins et tu veux voir comment le chiffre d’affaires se répartit par région.

SELECT
    region,
    COUNT(*) AS total_commandes,
    SUM(total_amount) AS chiffre_affaires_total,
    AVG(total_amount) AS valeur_moyenne_commande
FROM orders
GROUP BY region
ORDER BY chiffre_affaires_total DESC;

Tâche : Top 10 des clients par chiffre d’affaires

Maintenant, on ajoute un peu de logique pour sortir le top 10 des clients par montant total de commandes.

SELECT
    customer_id,
    SUM(total_amount) AS depenses_totales
FROM orders
GROUP BY customer_id
ORDER BY depenses_totales DESC
LIMIT 10;

Tâche : Comparer le chiffre d’affaires par jour de la semaine

Tu veux savoir quels jours de la semaine ton business rapporte le plus ? Voilà comment faire :

SELECT
    TO_CHAR(order_date, 'Day') AS jour_semaine,
    SUM(total_amount) AS chiffre_affaires_total,
    AVG(total_amount) AS valeur_moyenne_commande
FROM orders
GROUP BY TO_CHAR(order_date, 'Day')
ORDER BY chiffre_affaires_total DESC;
Commentaires
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION