logo

COMPTE SQL DISTINCT

Avant de comprendre le concept de fonction Count avec le mot-clé DISTINCT, nous devons connaître les mots-clés Count et Distinct. Commençons donc par la fonction Count.

Qu’est-ce que le nombre en SQL ?

Le COUNT est une fonction du langage de requête structuré qui affiche le nombre d'enregistrements de la table dans le résultat. En SQL, il est toujours utilisé dans la requête SELECT.

La syntaxe de la fonction Count est donnée ci-dessous :

 SELECT COUNT(Name_of_Column) FROM Name_of_Table; 

Dans l'exemple count, il faut définir le nom de la colonne entre parenthèses juste après le mot-clé COUNT.

Exemple de fonction de comptage

Tout d'abord, nous devons créer une nouvelle table sur laquelle la fonction count doit être exécutée.

La requête suivante crée le Professeur_Détails table avec ID_enseignant comme clé primaire à l'aide de l'instruction CREATE TABLE :

 CREATE TABLE Teacher_Details ( Teacher_ID INT NOT NULL, Teacher_Name varchar(100), Teacher_Qualification varchar(50), Teacher_Age INT, Teacher_Interview_Marks INT ); 

Les requêtes SQL suivantes insèrent l'enregistrement des nouveaux enseignants dans le tableau ci-dessus à l'aide de l'instruction INSERT INTO :

 INSERT INTO Teacher_Details VALUES (101, Anuj, B.tech, 20, 88); INSERT INTO Teacher_Details VALUES (102, Raman, MCA, 24, NULL); INSERT INTO Teacher_Details VALUES (104, Shyam, BBA, 19, 92); INSERT INTO Teacher_Details VALUES (107, Vikash, B.tech, 20, NULL); INSERT INTO Teacher_Details VALUES (111, Monu, MBA, 21, NULL); INSERT INTO Teacher_Details VALUES (114, Jones, B.tech, 18, 93); INSERT INTO Teacher_Details VALUES (121, Parul, BCA, 20, 97); INSERT INTO Teacher_Details VALUES (123, Divya, B.tech, 21, NULL); INSERT INTO Teacher_Details VALUES (128, Hemant, MBA, 23, 90); INSERT INTO Teacher_Details VALUES (130, Nidhi, BBA, 20, 88); INSERT INTO Teacher_Details VALUES (132, Priya, MBA, 22, NULL); INSERT INTO Teacher_Details VALUES (138, Mohit, MCA, 21, 92); 

Voyons l'enregistrement du tableau ci-dessus en utilisant l'instruction SELECT suivante :

 SELECT * FROM Teacher_Details; 

ID_enseignant Nom de l'enseignant Qualification_enseignant Enseignant_Âge Professeur_Interview_Marks
101 Anuj B.tech vingt 88
102 Raman MCA 24 NUL
104 Shyam BBA 19 92
107 Vikash B.tech vingt NUL
111 Monou MBA vingt-et-un NUL
114 Jones B.tech 18 93
121 Les cheveux BCA vingt 97
123 Divya B.tech vingt-et-un NUL
128 Hémant MBA 23 90
130 Nidhi BBA vingt 88
132 Priya MBA 22 NUL
138 Mohit MCA vingt-et-un 92

La requête suivante compte les valeurs totales de la colonne Teacher_Age de la table Teacher_Details :

 SELECT COUNT (Teacher_Age) AS Total_Teachers_Age_Column FROM Teacher_Details; 

Sortir:

COMPTE SQL DISTINCT

La sortie de la requête SELECT ci-dessus est douze car le Enseignant_Âge Le champ ne contient aucune valeur NULL.

La requête suivante compte les valeurs totales de Teacher_Interview_Column du tableau ci-dessus :

 SELECT COUNT (Teacher_Interview_Marks) AS Total_Teachers_Interview_Marks FROM Teacher_Details; 

Cette requête affichera la sortie ci-dessous à l'écran :

COMPTE SQL DISTINCT

Le résultat de la requête SELECT ci-dessus est 7 car deux cinq cellules de la colonne Teacher_Interview_Marks contiennent NULL. Et ces cinq valeurs NULL sont exclues. C'est pourquoi la requête SELECT affiche 7 au lieu de 12 dans le résultat.

Qu'est-ce que la fonction Count(*) ?

Ceci est également similaire à la fonction Count, mais la seule différence est qu'elle affiche également le nombre de valeurs NULL de la table.

La syntaxe de la fonction Count (*) est donnée ici :

 SELECT COUNT(*) FROM Name_of_Table; 

Exemple:

Prenons les Teacher_Details ci-dessus :

ID_enseignant Nom de l'enseignant Qualification_enseignant Enseignant_Âge Professeur_Interview_Marks
101 Anuj B.tech vingt 88
102 Raman MCA 24 NUL
104 Shyam BBA 19 92
107 Vikash B.tech vingt NUL
111 Monou MBA vingt-et-un NUL
114 Jones B.tech 18 93
121 Les cheveux BCA vingt 97
123 Divya B.tech vingt-et-un NUL
128 Hémant MBA 23 90
130 Nidhi BBA vingt 88
132 Priya MBA 22 NUL
138 Mohit MCA vingt-et-un 92

La requête suivante compte les valeurs totales de Total_Interview_Marks colonne du tableau ci-dessus :

 SELECT COUNT (*) FROM Teacher_Details; 

La requête SELECT avec COUNT(*) ci-dessus donnera le résultat ci-dessous à l'écran :

COMPTE SQL DISTINCT

Qu’est-ce que DISTINCT en SQL ?

Le mot-clé DISTINCT affiche les lignes uniques de la colonne du tableau dans le résultat.

La syntaxe du mot clé DISTINCT est donnée ici :

 SELECT DISTINCT Name_of_Column FROM Table_Name WHERE [condition]; 

Dans la requête DISTINCT, nous pouvons également définir la condition dans la clause WHERE pour récupérer les valeurs spécifiques.

Exemple de DISTINCT

Tout d’abord, créez une nouvelle table sur laquelle le mot-clé Distinct doit être exécuté.

La requête suivante crée le Vélo_Détails table à l'aide de l'instruction CREATE TABLE :

 CREATE TABLE Bike_Details ( Bike_Name varchar(100), Bike_Model INT, Bike_Color varchar(50), Bike_Cost INT ); 

Les requêtes SQL suivantes insèrent l'enregistrement des nouveaux vélos dans la table à l'aide de l'instruction INSERT INTO :

 INSERT INTO Bike_Details VALUES (KTM DUKE, 2019, Black, 185000); INSERT INTO Bike_Details VALUES (royal Infield, 2020, Black, 165000); INSERT INTO Bike_Details VALUES (Pulsar, 2018, Red, 90000); INSERT INTO Bike_Details VALUES (Apache, 2020, White, 85000); INSERT INTO Bike_Details VALUES (Livo, 2018, Black, 80000); INSERT INTO Bike_Details VALUES (KTM RC, 2020, Red, 195000); 

Les enregistrements de la table ci-dessus sont affichés à l'aide de la requête SELECT suivante :

 SELECT * FROM Bike_Details; 

Nom_vélo Modèle_vélo Couleur_vélo Vélo_Cost
KTM DUC 2019 Noir 185000
Royal Enfield 2020 Noir 165000
Presser 2018 Rouge 90000
Apache 2020 Blanc 85 000
En direct 2018 Noir 80 000
KTM RC 2020 Rouge 195 000

Tableau: Vélo_Détails

La requête SQL suivante demande les valeurs distinctes de la colonne Couleur de celles ci-dessus. Vélo_Détails tableau:

 SELECT DISTINCT Bike_Color FROM Bikes ; 

Sortir:

COMPTE SQL DISTINCT

Comme nous pouvons le voir, Noir, Rouge et Blanc sont trois valeurs distinctes dans la colonne Bike_Color.

Fonction de comptage avec le mot-clé DISTINCT

Le mot clé DISTINCT avec la fonction COUNT dans la requête SELECT affiche le nombre de données uniques du champ de la table.

La syntaxe de la fonction Count avec le mot-clé DISTINCT est donnée ci-dessous :

 SELECT COUNT(DISTINCT (Column_Name) FROM table_name WHERE [condition]; 

Exemples de fonction Count avec le mot-clé DISTINCT

Les deux exemples SQL suivants expliqueront l'exécution de la fonction Count avec le mot-clé Distinct :

Exemple 1:

La requête suivante crée la table College_Students avec quatre champs :

 CREATE TABLE College_Students ( Student_Id INT NOT NULL, Student_Name Varchar (40), Student_Age INT, Student_Marks INT ); 

La requête INSERT suivante insère l'enregistrement des étudiants dans la table College_Students :

 INSERT INTO College_Students (Student_Id, Student_Name, Student_Age, Student_Marks) VALUES (101, Akhil, 28, 95), (102, Abhay, 27, 86), (103, Sorya, 26, 79), (104, Abhishek, 27, 66), (105, Ritik, 26, 79), (106, Yash, 29, 88); 

La requête suivante affiche les détails de la table College_Students :

 SELECT * FROM College_Students; 

Carte d'étudiant Nom d'étudiant Âge_étudiant Notes_étudiants
101 Ahil 28 95
102 Abhay 27 86
103 Sorya 26 79
104 Abhishek 27 66
105 Hrithik 26 79
106 Oui 29 88

Tableau : College_Students

L'instruction SQL suivante compte les valeurs uniques de la colonne Student_Age de la table College_Students :

 SELECT COUNT (DISTINCT (Student_Age) AS Unique_Age FROM College_Students ; 

Cette requête donnera le tableau ci-dessous dans la sortie :

COMPTE SQL DISTINCT

La sortie affiche les quatre valeurs car la colonne Teacher_age contient 4 valeurs uniques.

Exemple 2 :

La requête suivante crée la table IT_Employee avec quatre champs :

 CREATE TABLE IT_Employee ( Employee_Id INT NOT NULL, Employee_Name Varchar (40), Emp_Age INT, Employee_Salary INT ); 

La requête INSERT suivante insère l'enregistrement des employés informatiques dans la table IT_Employee :

comment fermer le mode développeur
 INSERT INTO IT_Employee (Employee_Id, Employee_Name, Employee_Age, Employee_Salary) VALUES (101, Akhil, 28, 25000), (102, Abhay, 27, 26000), (103, Sorya, 26, 29000), (104, Abhishek, 27, 26000), (105, Ritik, 26, 29000), (106, Yash, 29, 25000); 

La requête suivante affiche les détails de la table IT_Employee :

 SELECT * FROM IT_Employee; 

ID_employé Nom de l'employé Employé_Âge Employé_Salaire
101 Ahil 28 25000
102 Abhay 27 26000
103 Sorya 26 29000
104 Abhishek 27 26000
105 Hrithik 26 29000
106 Oui 29 25000

Tableau : IT_Employé

L'instruction SQL suivante compte uniquement les valeurs uniques de la colonne Emp_Age de la table IT_Employee ci-dessus :

 SELECT COUNT (DISTINCT (Employee_Age)) AS Unique_Age FROM IT_Employee ; 

Cette requête donnera le résultat ci-dessous :

COMPTE SQL DISTINCT