PaliSkill
SQL avancé

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 le SELECT et dans le GROUP BY.
  • Exclure les valeurs NULL avant 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