Compter des lignes et des valeurs renseignées
Objectif : Calculer le nombre d’emprunts ou d’adhérents répondant à une question précise.
Compter des lignes et des valeurs renseignées
Vous avez parfois besoin d’un nombre plutôt que d’une liste : combien d’emprunts sont enregistrés, ou combien d’adhérents ont renseigné leur courriel ? Une requête qui affiche chaque ligne ne répond pas directement à ces questions. Vous allez utiliser COUNT pour obtenir un résultat numérique.
Vous savez déjà choisir une table et des colonnes, puis filtrer les lignes avec WHERE : ces notions ont été abordées dans les leçons précédentes. Ici, la fonction COUNT résume les lignes qui restent après l’application éventuelle du filtre.
Compter toutes les lignes avec COUNT(*)
COUNT(*) compte les lignes du résultat, sans examiner si certaines colonnes contiennent NULL. La requête suivante donne le nombre total d’emprunts enregistrés dans emprunts. L’alias nombre_emprunts fournit un en-tête explicite à la valeur calculée.
-- Compter tous les emprunts enregistrés
SELECT COUNT(*) AS nombre_emprunts
FROM emprunts;Une seule ligne, avec une colonne nommée nombre_emprunts. Sa valeur correspond au nombre total de lignes de la table emprunts.Le résultat est une ligne unique contenant le compte, même si la table ne contient aucune ligne : dans ce cas, la valeur est 0. Si vous souhaitez compter seulement une partie des emprunts, ajoutez un filtre avec WHERE avant la fin de la requête. La fonction comptera alors les lignes qui satisfont ce critère.
-- Compter les emprunts enregistrés en 2024
SELECT COUNT(*) AS nombre_emprunts_2024
FROM emprunts
WHERE date_emprunt BETWEEN '2024-01-01' AND '2024-12-31';Une seule ligne, avec le nombre d’emprunts dont date_emprunt se situe entre le 1er janvier et le 31 décembre 2024, bornes comprises.Compter les valeurs renseignées avec COUNT(colonne)
COUNT(nom_colonne) compte uniquement les lignes où cette colonne contient une valeur, et ignore ses valeurs NULL. Par exemple, vous pouvez compter les adhérents dont le champ courriel est renseigné. Le résultat ne représente pas nécessairement le nombre total d’adhérents : ceux sans courriel ne sont pas comptés.
-- Compter les adhérents dont le courriel est renseigné
SELECT COUNT(courriel) AS adherents_avec_courriel
FROM adherents;Une seule ligne, avec le nombre de valeurs non NULL de la colonne courriel dans la table adherents.Pour distinguer le nombre total d’adhérents du nombre d’adhérents avec courriel, sélectionnez les deux comptes dans la même requête. Les deux colonnes portent des alias différents afin que leur sens soit lisible dans le résultat. Cette comparaison aide aussi à repérer combien de lignes ne contribuent pas au compte de courriels renseignés.
-- Comparer le nombre total d'adhérents et les courriels renseignés
SELECT
COUNT(*) AS nombre_adherents,
COUNT(courriel) AS adherents_avec_courriel
FROM adherents;Une seule ligne avec deux colonnes : nombre_adherents compte toutes les lignes, et adherents_avec_courriel compte les valeurs non NULL de courriel.Ajouter les comptes à requetes.sql
Pour prolonger le projet, seul le fichier requetes.sql change. Ajoutez le bloc suivant à la suite des requêtes déjà présentes, sans remplacer leur contenu. Chaque commentaire indique la question traitée ; les requêtes peuvent être exécutées séparément dans MariaDB 11.
-- Compter tous les emprunts enregistrés
SELECT COUNT(*) AS nombre_emprunts
FROM emprunts;
-- Compter les emprunts enregistrés en 2024
SELECT COUNT(*) AS nombre_emprunts_2024
FROM emprunts
WHERE date_emprunt BETWEEN '2024-01-01' AND '2024-12-31';
-- Compter les adhérents dont le courriel est renseigné
SELECT COUNT(courriel) AS adherents_avec_courriel
FROM adherents;
-- Comparer le nombre total d'adhérents et les courriels renseignés
SELECT
COUNT(*) AS nombre_adherents,
COUNT(courriel) AS adherents_avec_courriel
FROM adherents;À retenir
COUNT(*)compte toutes les lignes du résultat.COUNT(colonne)compte les valeurs nonNULLde cette colonne.- Un filtre
WHERErestreint les lignes avant leur comptage. - Des alias explicites rendent les résultats numériques plus faciles à interpréter.
Dans la prochaine leçon, vous calculerez des totaux et des valeurs représentatives avec d’autres fonctions d’agrégat.