Que voulez-vous réellement compter ?
COUNT(*) compte toutes les lignes du périmètre. COUNT(telephone) compte uniquement les lignes où telephone n’est pas NULL.
Utiliser les deux dans la même requête produit un contrôle de complétude : population totale, valeurs renseignées et différence.
La requête expliquée
Commencez par définir ce que doit représenter une ligne du résultat. Cette décision détermine les colonnes, les regroupements et les contrôles nécessaires.
L’exemple suivant isole le mécanisme principal. Exécutez-le, observez le résultat, puis modifiez une seule clause à la fois pour comprendre son effet.
SELECT
COUNT(*) AS clients_total,
COUNT(telephone) AS telephones_renseignes,
COUNT(*) - COUNT(telephone) AS telephones_absents
FROM clients;Lire le résultat comme un analyste
Les trois colonnes doivent se réconcilier : renseignés plus absents égale le total. Ce contrôle rend le taux final explicable.
Après une jointure, COUNT(*) peut aussi compter des lignes multipliées. Vérifiez toujours le grain avant d’interpréter le volume.
- Définir la population avant le comptage.
- Mesurer les NULL de la colonne comptée.
- Contrôler l’effet des jointures.
- Comparer volume détaillé et agrégé.
Les erreurs qui faussent l’analyse
Une requête peut être valide sans répondre correctement à la question. Les erreurs les plus coûteuses sont souvent silencieuses : mauvais périmètre, ligne multipliée ou valeur absente interprétée comme zéro.
Avant de partager le résultat, confrontez-le à un petit échantillon calculé à la main et conservez la définition du périmètre avec la requête.
- Présenter COUNT(colonne) comme le nombre de lignes.
- Oublier les NULL.
- Compter après une jointure plusieurs-à-plusieurs.
- Utiliser DISTINCT pour masquer une multiplication non comprise.
Passez à la pratique
Utilisez l’exercice de complétude pour calculer un taux et protéger la division avec NULLIF.
Le simulateur SQL de SQL.tn exécute uniquement des requêtes de lecture sur des données fictives dans votre navigateur. Vous pouvez essayer plusieurs écritures et comparer leur résultat sans installer de logiciel.
Mettez ce guide en pratique.
Ouvrez l’exercice associé, exécutez votre requête et comparez le résultat attendu.
