Module 1 : Comprendre les bases de données
1.1 — Pourquoi les bases de données ? Aperçu
Module 2 : Installation et découverte de PostgreSQL
2.1 — Installer PostgreSQL Aperçu
Module 3 : Le langage SQL — Les fondamentaux
3.1 — SELECT : lire des données Aperçu
Module 4 : Conception et création de tables
4.1 — Clés primaires et identifiants Aperçu
Module 5 : Requêtes SELECT avancées
5.1 — DISTINCT, CASE, COALESCE, NULLIF Aperçu
Module 6 : Jointures SQL
6.1 — INNER JOIN : le cœur des bases relationnelles Aperçu
Module 7 : Agrégation et regroupement avancés
7.1 — GROUP BY approfondi Aperçu
Module 8 : Sous-requêtes et CTE
8.1 — Sous-requêtes scalaires et de liste Aperçu
Module 9 : Fonctions SQL intégrées
9.1 — Fonctions de chaînes Aperçu
Module 10 : Indexation et performances
10.1 — Comprendre EXPLAIN ANALYZE Aperçu
Module 11 : Contraintes avancées et intégrité
11.1 — Domaines et types personnalisés Aperçu
Module 12 : Transactions et concurrence
12.1 — Transactions ACID Aperçu
Module 13 : Vues et vues matérialisées
13.1 — Vues simples et modifiables Aperçu
Module 14 : Procédures stockées et fonctions PL/pgSQL
14.1 — Premiers pas en PL/pgSQL Aperçu
Module 15 : Triggers et événements
15.1 — Créer un trigger simple Aperçu
Module 16 : Sécurité, rôles et permissions
16.1 — Rôles, utilisateurs et GRANT Aperçu
Module 17 : Sauvegarde, restauration et maintenance
17.1 — pg_dump et pg_restore Aperçu
Module 18 : Types de données avancés
18.1 — JSON et JSONB Aperçu
Module 19 : Recherche plein texte (Full-Text Search)
19.1 — tsvector et tsquery Aperçu
Module 20 : Projet final — Conception complète
20.1 — Analyse du besoin et cahier des charges Aperçu

Le reste de la formation est réservé aux inscrits.

S'inscrire gratuitement
Module 7 : Agrégation et regroupement avancés Aperçu gratuit

7.1 — GROUP BY approfondi

📋 Objectifs d'apprentissage

  • Regrouper sur plusieurs colonnes
  • Utiliser HAVING pour filtrer les groupes
  • Combiner GROUP BY avec CASE pour des segmentations complexes
-- Regroupement multi-niveaux
SELECT departement, EXTRACT(YEAR FROM date_embauche) AS annee, COUNT(*) AS nb_embauches
FROM employes GROUP BY departement, annee ORDER BY departement, annee;
-- HAVING avec expression complexe
SELECT client_id, SUM(montant) AS total FROM commandes
GROUP BY client_id HAVING SUM(montant) > 1000 AND COUNT(*) >= 3;
Ceci est un aperçu gratuit.
Voir la formation complète