Comment utiliser COUNT en SQL
Présentation
- COUNT( ) est une fonction d'agrégation en SQL.
- Cette fonction compte le nombre d'enregistrements dans une table si la condition n'est pas spécifiée.
- Si la condition est spécifiée, la fonction count renvoie le nombre d'enregistrements satisfaisant la condition spécifiée.
Variantes de COMPTER ( ) en SQL
- COUNT(*)
COUNT (*) permet d'afficher le nombre d'enregistrements présents dans une table.
Les résultats de la fonction COUNT (*) contiendront NULL ainsi que des entrées en double également à prendre en compte.
Syntaxe :
SELECT COUNT (*) FROM tablename;
Exemple :
Nous allons d'abord créer une base de données avec le nom "employeedb". Ensuite, dans cette base de données, nous allons créer une table "employé" et insérer des enregistrements dans la table. Nous considérerons ce tableau et cette base de données pour tous les exemples suivants.
Nous trouverons le nombre d'enregistrements présents dans la table 'employé' en utilisant la fonction COUNT().
mysql> USE employeedb; Database changed mysql> SELECT *FROM employee; +--------+----------+------------+ | Emp_ID | Emp_Name | Emp_Salary | +--------+----------+------------+ | 1 | Nikita | 30000 | | 2 | Riddhi | 25000 | | 3 | Nayan | 45000 | | 4 | Shruti | 15000 | | 5 | Anurati | 55000 | | 6 | NULL | NULL | | 7 | Anurati | 55000 | +--------+----------+------------+ 7 rows in set (0.00 sec)
mysql> SELECT COUNT(*) FROM employee;
Sortie :
+----------+ | COUNT(*) | +----------+ | 7 | +----------+ 1 row in set (0.00 sec)
Il y a 7 enregistrements présents dans la table des employés.
- COUNT (1)
COUNT (1) permet également d'afficher le nombre d'enregistrements présents dans une table. Les résultats de la fonction COUNT (1) contiendront NULL ainsi que des entrées en double également à prendre en compte. La fonction COUNT (1) fonctionne de la même manière que COUNT (*). Même les résultats de COUNT (1) et COUNT (*) sont également identiques.
Syntaxe :
SELECT COUNT (1) FROM tablename;
Exemple 1 : Nous afficherons le nombre d'enregistrements présents dans la table des employés en utilisant COUNT (1).
mysql> SELECT COUNT(1) FROM employee;
Sortie :
+----------+ | COUNT(1) | +----------+ | 7 | +----------+ 1 row in set (0.00 sec)
Il y a 7 enregistrements présents dans une table.
Exemple 2 :
Voyons ce qui se passe lorsque nous passons 14 en paramètre à la fonction COUNT().
mysql> SELECT COUNT(14) FROM employee;
Sortie :
+-----------+ | COUNT(14) | +-----------+ | 7 | +-----------+ 1 row in set (0.00 sec)
Il y a 7 enregistrements présents dans une table. Ainsi, 7 est affiché en sortie même si nous avons passé 14 en paramètre à la fonction COUNT(). Passer un entier à une fonction COUNT() ne signifie pas compter ce nombre de lignes dans la table. Cela signifie simplement que 14 lignes seront attribuées à chaque ligne présente dans un tableau, puis que les lignes seront additionnées pour donner un total et affichées en tant que sortie.
Exemple 3 :
Voyons ce qui se passe lorsque nous passons -14 en paramètre à la fonction COUNT().
mysql> SELECT COUNT(-14) FROM employee;
Sortie :
+------------+ | COUNT(-14) | +------------+ | 7 | +------------+ 1 row in set (0.07 sec)
Il y a 7 enregistrements présents dans une table. Ainsi, 7 est affiché en sortie même si nous avons passé -14 en paramètre à la fonction COUNT(). Cela signifie simplement que -14 sera attribué à chaque ligne présente dans un tableau, puis que les lignes seront additionnées pour donner un total et affichées en sortie.
- COUNT(ColumnName)
COUNT(ColumnName) est utilisé pour trouver le nombre d'enregistrements qui contiennent des valeurs pour la colonne spécifiée. Lors de l'utilisation de la fonction COUNT() avec nom de colonne comme paramètre, les enregistrements contenant des valeurs NULL pour cet enregistrement seront ignorés.
Syntaxe :
SELECT COUNT(ColumnName) FROM tablename;
Exemple 1 :
Nous afficherons le nombre d'enregistrements qui existe pour Emp_ID.
mysql> SELECT COUNT(Emp_ID) FROM employee;
Sortie :
+---------------+ | COUNT(Emp_ID) | +---------------+ | 7 | +---------------+ 1 row in set (0.00 sec)
Il y a 7 enregistrements qui contiennent un Emp_ID unique. Par conséquent, 7 est affiché en sortie.
Exemple 2 :
Nous afficherons le nombre d'enregistrements qui existent pour Emp_Name.
mysql> SELECT COUNT(Emp_Name) FROM employee;
Sortie :
+-----------------+ | COUNT(Emp_Name) | +-----------------+ | 6 | +-----------------+ 1 row in set (0.00 sec)
Il y a 7 enregistrements dans la table des employés parmi lesquels un enregistrement contient des valeurs NULL pour Emp_Name. Ainsi, cet enregistrement particulier est ignoré et 6 est affiché en sortie.
Exemple 3 :
Nous afficherons le nombre d'enregistrements qui existent pour Emp_Salary.
mysql> SELECT COUNT(Emp_Salary) FROM employee;
Sortie :
+-------------------+ | COUNT(Emp_Salary) | +-------------------+ | 6 | +-------------------+ 1 row in set (0.00 sec)
Il y a 7 enregistrements dans la table des employés parmi lesquels un enregistrement contient des valeurs NULL pour Emp_Salary. Ainsi, cet enregistrement particulier est ignoré et 6 est affiché en sortie.
- COUNT(DISTINCT ColumnnName)
La fonction COUNT() avec DISTINCT ColumnName comme paramètre est utilisée pour afficher le nombre d'enregistrements contenant des valeurs uniques pour une colonne spécifique. Les enregistrements qui contiennent des valeurs en double et NULL ne seront pas comptés.
Syntaxe :
SELECT COUNT(DISTINCT ColumnName) FROM tablename;
Exemple 1 :
Nous afficherons le nombre d'enregistrements contenant des valeurs uniques pour Emp_ID.
mysql> SELECT COUNT( DISTINCT Emp_ID) FROM employee;
Sortie :
+-------------------------+ | COUNT( DISTINCT Emp_ID) | +-------------------------+ | 7 | +-------------------------+ 1 row in set (0.05 sec)
Il y a 7 enregistrements qui contiennent des valeurs uniques pour Emp_ID.
Exemple 2 :
Nous afficherons le nombre d'enregistrements contenant des valeurs uniques pour Emp_Name.
mysql> SELECT COUNT( DISTINCT Emp_Name) FROM employee;
Sortie :
+---------------------------+ | COUNT( DISTINCT Emp_Name) | +---------------------------+ | 5 | +---------------------------+ 1 row in set (0.00 sec)
Il y a 5 enregistrements qui contiennent des valeurs uniques pour Emp_Name. Les valeurs NULL et en double dans Emp_Name ne seront pas prises en compte par le mot-clé DISTINCT.
Exemple 3 :
Nous afficherons le nombre d'enregistrements contenant des valeurs uniques pour Emp_Salary.
mysql> SELECT COUNT( DISTINCT Emp_Salary) FROM employee;
Sortie :
+-----------------------------+ | COUNT( DISTINCT Emp_Salary) | +-----------------------------+ | 5 | +-----------------------------+ 1 row in set (0.00 sec)
Il y a 5 enregistrements qui contiennent des valeurs uniques pour Emp_Salary. Les valeurs NULL et en double dans Emp_Salary ne seront pas prises en compte par le mot-clé DISTINCT.