Leçon 8 / 9 — Chapitre 2: Fonctions date approfondies
Combiner DATE_TRUNC et agrégation
DATE_TRUNC s'utilise très souvent avec GROUP BY, pour regrouper des lignes par mois ou par année plutôt que par date exacte.
SELECT DATE_TRUNC('month', date_inscription) AS mois, COUNT(*) AS nb_clients
FROM clients
WHERE date_inscription IS NOT NULL
GROUP BY DATE_TRUNC('month', date_inscription)
ORDER BY mois;
WHERE date_inscription IS NOT NULL exclut d'abord le client d'id 4 (date manquante). Les 5 clients restants se répartissent sur 3 mois : mars (clients 1 et 5, 2024-03-15 chacun), avril (clients 2 et 3, 2024-04-02 chacun), mai (client 6, 2024-05-20). Résultat : 3 lignes — mars (2), avril (2), mai (1).
À retenir :
GROUP BY DATE_TRUNC('month', colonne)regroupe les lignes par mois, quelle que soit leur date exacte à l'intérieur de ce mois.- La même colonne calculée (
DATE_TRUNC(...)) doit apparaître à l'identique dans leSELECTet dans leGROUP BY. - Exclure les valeurs
NULLavant de regrouper (comme ici) évite un groupe « fantôme » sans date réelle.
À vous de jouer : combien de clients regrouperait le mois d'avril si le client d'id 3 changeait sa date_inscription pour le 15 mai 2024 ?
Continuez ce module
Débloquez les leçons restantes ainsi que la certification finale.
2 500 XOF / 3,81 € / 4,15 $
Débloquez les 80 leçons restantes de ce module
Votre paiement est vérifié avant l'activation de l'accès