La méthode COUNT IF dans MySQL

Preet Sanghavi 28 mars 2022
La méthode COUNT IF dans MySQL

Dans ce tutoriel, nous visons à explorer comment utiliser la méthode COUNT IF dans MySQL.

La méthode COUNT() dans MySQL donne le nombre total de lignes dans la table en sortie. Mais dans cet article, nous souhaitons comprendre comment nous pouvons compter les informations basées sur une condition IF particulière à partir de nos données.

La commande IF nous donne le nombre total de valeurs non nulles distinctes uniquement si les valeurs satisfont l’expression ou la condition mentionnée dans le fragment de requête IF.

Comprenons comment cette méthode fonctionne.

Avant de commencer, nous créons un jeu de données factice sur lequel travailler.

-- create the table student_details
CREATE TABLE student_details(
  stu_id int,
  stu_firstName varchar(255) DEFAULT NULL,
  stu_lastName varchar(255) DEFAULT NULL,
  primary key(stu_id)
);
-- insert rows to the table student_details
INSERT INTO student_details(stu_id,stu_firstName,stu_lastName) 
 VALUES(1,"Preet","Sanghavi"),
 (2,"Rich","John"),
 (3,"Veron","Brow"),
 (4,"Geo","Jos"),
 (5,"Hash","Shah"),
 (6,"Sachin","Parker"),
 (7,"David","Miller");

Utilisation de la méthode Count IF dans MySQL

La syntaxe de base de la technique COUNT IF peut être illustrée comme suit.

SELECT  COUNT(IF(<condition>, <expr>, NULL)) AS alias FROM name_of_the_table;

Comme on le voit dans la requête ci-dessus, nous visons à compter les valeurs distinctes ou non distinctes indiquées comme expr ici à partir d’une table particulière basée sur une condition définie dans la clause IF comme condition.

Dans notre tableau des détails des étudiants, comptons le nombre total de stu_id distincts avec leur stu_firstName se terminant par reet. Cette tâche peut être réalisée à l’aide de la requête suivante.

SELECT DISTINCT
    COUNT(DISTINCT IF(stu_firstName like '%reet',
            stu_id,
            NULL)) AS count_student_ids
FROM student_details;

Ce code compte des nombres distincts de stu_id de la table student_details étant donné que le stu_firstName doit se terminer par reet dans la clause IF.

Production :

count_student_ids
1

Remarque : Dans l’extrait de code ci-dessus, nous utilisons l’alias count_student_ids avec le mot clé AS dans MySQL.

Une alternative à la technique COUNT IF est la technique SUM CASE qui peut nous aider à obtenir des résultats similaires.

Par conséquent, à l’aide de la technique COUNT IF, nous pouvons compter efficacement le nombre total d’occurrences d’une entité en fonction d’une condition particulière à partir d’une table dans MySQL.

Preet Sanghavi avatar Preet Sanghavi avatar

Preet writes his thoughts about programming in a simplified manner to help others learn better. With thorough research, his articles offer descriptive and easy to understand solutions.

LinkedIn GitHub

Article connexe - MySQL Query