Vous travaillez avec des tables et souhaitez connaĂźtre le nombre dâĂ©lĂ©ments dans une colonne ou avec un filtre ? La fonction dâagrĂ©gation COUNT() en SQL permet de compter le nombre dâenregistrements dans une table. Cette fonction est particuliĂšrement pratique si vous souhaitez connaĂźtre le nombre dâutilisateurs prĂ©sents en ligne ou encore le nombre de commentaires sur un article de blog. RĂ©guliĂšrement utilisĂ©e par les utilisateurs de SQL, dĂ©couvrez la syntaxe et les cas dâutilisation de la fonction COUNT().
La syntaxe de SQL COUNT()
Il existe plusieurs maniĂšres dâutiliser la fonction COUNT via une requĂȘte SQL. La premiĂšre permet de connaĂźtre le nombre total de lignes, nulles ou non :
SELECT COUNT(*) FROM table
Ensuite, vous pouvez obtenir le nombre total dâĂ©lĂ©ments sur une colonne en particulier. Pour cette fonction, les enregistrements avec une valeur nulle ne seront pas comptabilisĂ©s. Pour une colonne nommĂ©e « nom_colonne », voici la syntaxe pour compter les enregistrements :
SELECT COUNT(nom_colonne) FROM table
La derniĂšre syntaxe de COUNT permet de comptabiliser les Ă©lĂ©ments uniques pour une colonne. Cela signifie que les doublons n’affectent pas le rĂ©sultat de la fonction pour la colonne sĂ©lectionnĂ©e. Pour une colonne nommĂ©e « nom_colonne », la syntaxe pour comptabiliser le nombre de valeurs uniques est la suivante :
SELECT COUNT(DISTINCT nom_colonne) FROM table
Pour optimiser la lisibilité des résultats, vous pouvez filtrer les lignes avec GROUP BY. Ainsi, la fonction retourne le nombre de lignes de chaque groupe. Notez que les doublons et les valeurs nulles sont comptabilisés.
Comment est utilisé la fonction COUNT() ?
En fonction de lâutilisation de la fonction COUNT(), les rĂ©sultats sont diffĂ©rents. DĂ©couvrez concrĂštement comment lâutiliser dĂ©pendamment de votre cas dâusage.
Utilisation de COUNT(*)
Admettons que vous travaillez dans une entreprise appelĂ©e FinanceIncorporation. Vous recherchez le nombre total dâemployĂ©s au sein de lâorganisation. Lâutilisation de la fonction COUNT() est alors utile.Â
SELECT COUNT(*)
FROM RessourcesHumaines.Employes;
Les rĂ©sultats obtenus seront alors :Â
-----------
490
(1 row(s) affected)
Utilisation de COUNT() avec GROUP BY
Si votre table contient une colonne nommĂ©e âdepartementâ catĂ©gorisant chaque personne Ă un dĂ©partement dans lâentreprise. Avec lâutilisation de la clause GROUP BY, vous obtenez le nombre dâemployĂ©s par dĂ©partement. La requĂȘte prendrait alors la forme suivante :Â
SELECT COUNT(*)
FROM RessourcesHumaines.Employes;
GROUP BY departement;
Utilisation de COUNT() avec WHERE
Pour garder les exemples de lâentreprise FinaceIncorporation, admettons que vous souhaitiez trouver le nombre de commerciaux ayant vendu pour plus de 25 000 ⏠de logiciels. La requĂȘte prendrait alors la forme suivante :Â
SELECT COUNT(*)
FROM Ventes.Commerciaux
WHERE ValeurVendue > 25000;
Ici, lâinstruction WHERE permet dâappliquer un filtre aux enregistrements Where applique un filtre aux enregistrements, prĂ©cisant ainsi les rĂ©sultats de votre requĂȘte. Une autre instruction optionnelle pratique est ORDER BY. Cette expression est utilisĂ©e pour afficher le rĂ©sultat de la requĂȘte dans un ordre donnĂ©.
Utilisation de COUNT(colonne)
Une autre mĂ©thode permet de compter le nombre dâutilisateurs inscrits dâun site e-commerce qui ont effectuĂ© un achat. Admettons que vous disposez dâune table âid_achatsâ. Sâil nây a pas dâachat, la valeur est nulle et ne sera donc pas comptabilisĂ©e. La requĂȘte prendrait donc la forme suivante :Â
SELECT COUNT(id_dernier_achat) FROM utilisateur
Peut-on avoir plusieurs COUNT() dans une seule requĂȘte SQL ?
Lors dâun projet, vous pouvez rencontrer une situation dans laquelle vous devez effectuer plusieurs appels dans une base de donnĂ©es. NĂ©anmoins, cela reste chronophage et pour de meilleures performances, il est prĂ©fĂ©rable de rĂ©duire ces appels.Â
PlutĂŽt que dâeffectuer 3 requĂȘtes successives :Â
SELECT COUNT(*) FROM table1;
SELECT COUNT(*) FROM table2;
SELECT COUNT(*) FROM table2 WHERE is_valid = 1;
Vous pouvez regrouper ces requĂȘtes en une seule pour retourner un enregistrement contenant les valeurs count1, count2 et count3 :Â
SELECT
(SELECT COUNT(*) FROM table1) as count1,
(SELECT COUNT(*) FROM table2) as count2,
(SELECT COUNT(*) FROM table2 WHERE is_valid = 1) as count3
Regrouper plusieurs requĂȘtes en une seule est une fonctionnalitĂ© utile lorsque vous souhaitez compter le nombre de membres inscrits, connectĂ©s, le nombre de visiteurs en ligne ou encore les messages non lus et les notifications dâun membre.Â
Conclusion sur lâutilisation de COUNT() en SQL
La fonction dâagrĂ©gation COUNT() permet de compter le nombre dâenregistrements dans une table. GrĂące Ă ses syntaxes avec WHERE et COUNT(DISTINCT), il est possible dâobtenir le nombre dâenregistrements avec une requĂȘte plus prĂ©cise, offrant ainsi plus de lisibilitĂ© au rĂ©sultat. Enfin, plusieurs requĂȘtes COUNT() peuvent ĂȘtre regroupĂ©es afin dâoptimiser les performances et dâĂ©viter plusieurs appels rĂ©pĂ©titifs.
Si vous dĂ©sirez en savoir plus sur SQL, dĂ©couvrez notre dossier complet sur ce sujet. Sinon, apprenez Ă maĂźtriser ce langage informatique de requĂȘte de bases de donnĂ©es relationnelles Ă travers l’une des formations proposĂ©es par DataScientest.Â