PaliSkill
← SQL débutant

Leçon 2 / 9 — Chapitre 5: Fonctions d'agrégation

COUNT(colonne) contre COUNT(*)

COUNT(colonne) compte les lignes où cette colonne précise possède une valeur non NULL — une différence importante avec COUNT(*), qui compte toutes les lignes sans exception.

SELECT COUNT(*) FROM produits;
SELECT COUNT(stock) FROM produits;

Sur la table produits telle que vue jusqu'ici, chaque ligne possède une valeur de stock : ces deux requêtes renvoient donc le même résultat, 6. Mais si une ou plusieurs lignes avaient un stock à NULL (vu au deuxième chapitre), COUNT(stock) renverrait un nombre inférieur à COUNT(*), puisqu'il ignorerait ces lignes-là.

SELECT COUNT(categorie) FROM produits WHERE prix > 1000;

Si aucune ligne ne vérifiait prix > 1000, ce code renverrait 0 — un résultat parfaitement valide : COUNT sur un ensemble vide renvoie toujours 0, jamais NULL.

Bonne pratique à retenir : utiliser COUNT(*) quand on veut compter des lignes en général, et COUNT(colonne) uniquement quand on veut spécifiquement savoir combien de lignes ont une valeur renseignée sur cette colonne précise.

À retenir :

  • COUNT(colonne) ignore les lignes où cette colonne vaut NULL, contrairement à COUNT(*).
  • COUNT sur un ensemble vide renvoie toujours 0, jamais NULL.

À vous de jouer : écrivez une requête qui compte combien de produits ont une categorie renseignée (non NULL).

🔒

Continuez ce module

Débloquez les leçons restantes ainsi que l'attestation finale.

5 000 XOF / 7,62 € / 8,31 $

Débloquez les 91 leçons restantes de ce module

Pour vous communiquer où envoyer le paiement.

Moyen de paiement souhaité

Nous vous contactons pour le paiement — activé dès réception.