Fonction COUNT() dans SQL : Tutoriel complet de cette formule

-
3
 m de lecture
-

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. 

Facebook
Twitter
LinkedIn

DataScientest News

Inscrivez-vous à notre Newsletter pour recevoir nos guides, tutoriels, et les derniÚres actualités data directement dans votre boßte mail.

Vous souhaitez ĂȘtre alertĂ© des nouveaux contenus en data science et intelligence artificielle ?

Laissez-nous votre e-mail, pour que nous puissions vous envoyer vos nouveaux articles au moment de leur publication !

Newsletter icone
icon newsletter

DataNews

Vous souhaitez recevoir notre
newsletter Data hebdomadaire ?