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 vautNULL, contrairement àCOUNT(*).COUNTsur un ensemble vide renvoie toujours0, jamaisNULL.
À 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