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:
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 :
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 :
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:
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 :
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 :