Compter des valeurs distinctes dans MySQL
Dans ce tutoriel, nous allons présenter différentes méthodes pour compter des valeurs distinctes.
La méthode COUNT()
de MySQL donne le nombre total de lignes de la table en sortie. Cependant, dans cet article, nous sommes intéressés à comprendre comment calculer ou compter le nombre d’occurrences distinctes d’une expression. La syntaxe pour effectuer cette opération peut être écrite sous la forme COUNT (expression DISTINCT)
. Cette commande nous donne le nombre total de valeurs non nulles distinctes en tant que sortie de l’expression particulière.
Voyons cette méthode en action.
Cependant, avant de commencer, nous créons un jeu de données factice avec lequel travailler. Ici, nous créons un tableau, student_details
, avec quelques lignes dedans.
-- 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");
La requête ci-dessus crée un tableau avec des lignes contenant le prénom et le nom de l’étudiant. Afin de visualiser les entrées dans les données, nous utilisons le code suivant :
SELECT * FROM student_details;
Le code ci-dessus donnerait la sortie suivante.
stu_id stu_firstName stu_lastName
1 Preet Sanghavi
2 Rich John
3 Veron Brow
4 Geo Jos
5 Hash Shah
6 Sachin Parker
7 David Miller
Compter des valeurs distinctes dans MySQL
La fonction MySQL COUNT (DISTINCT expression)
, comme indiqué ci-dessus, nous donne le nombre de lignes avec des valeurs uniques non nulles. Pour compter le nombre d’élèves aux prénoms uniques, nous utilisons le code suivant.
-- Count the number of students with different first names
SELECT COUNT(DISTINCT stu_firstName) as distinct_first_names FROM student_details ;
Le code ci-dessus compte le nombre de prénoms distincts issus de la table student_details
. La sortie du code ci-dessus est la suivante.
distinct_first_names
7
Ainsi, nous pouvons voir que les noms uniques (Preet, Rich, Veron, Geo, Hash, Sachin et David) ont été comptés pour générer le décompte final de 7.
Remarque : dans le code ci-dessus, nous utilisons l’alias distinct_first_names
avec comme mot-clé AS
dans MySQL.