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 la certification finale.

2 500 XOF / 3,81 € / 4,15 $

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

Votre paiement est vérifié avant l'activation de l'accès