logo

SQL COUNT DISTINCT

Abans d'entendre el concepte de funció de recompte amb la paraula clau DISTINCT, hem de conèixer les paraules clau Count i Distinct. Per tant, comencem amb la funció Recompte.

Què és Count en SQL?

El COUNT és una funció del llenguatge de consulta estructurat que mostra el nombre de registres de la taula al resultat. En SQL, sempre s'utilitza a la consulta SELECT.

La sintaxi de la funció Recompte es mostra a continuació:

 SELECT COUNT(Name_of_Column) FROM Name_of_Table; 

A l'exemple de recompte, hem de definir el nom de la columna entre parèntesis just després de la paraula clau COUNT.

Exemple de funció de recompte

En primer lloc, hem de crear una taula nova sobre la qual s'ha d'executar la funció de recompte.

La consulta següent crea el Detalls del professor taula amb Teacher_ID com a clau primària mitjançant la instrucció 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 consultes SQL següents insereixen el registre dels professors nous a la taula anterior mitjançant la instrucció 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); 

Vegem el registre de la taula anterior utilitzant la següent sentència SELECT:

 SELECT * FROM Teacher_Details; 

Teacher_ID Nom_professor Titulació_professor Professor_Edat Teacher_Entrevista_Marques
101 Anuj B.tech 20 88
102 Raman MCA 24 NUL
104 Shyam BBA 19 92
107 Vikash B.tech 20 NUL
111 Monu MBA 21 NUL
114 Jones B.tech 18 93
121 El cabell BCA 20 97
123 Divya B.tech 21 NUL
128 Hemant MBA 23 90
130 Nidhi BBA 20 88
132 Priya MBA 22 NUL
138 Mohit MCA 21 92

La consulta següent compta els valors totals de la columna Teacher_Age de la taula Teacher_Details:

 SELECT COUNT (Teacher_Age) AS Total_Teachers_Age_Column FROM Teacher_Details; 

Sortida:

El procés d'Android acore continua aturant-se
SQL COUNT DISTINCT

La sortida de la consulta SELECT anterior és dotze perquè Professor_Edat El camp no conté cap valor NULL.

La consulta següent compta els valors totals de Teacher_Interview_Column de la taula anterior:

 SELECT COUNT (Teacher_Interview_Marks) AS Total_Teachers_Interview_Marks FROM Teacher_Details; 

Aquesta consulta mostrarà la següent sortida a la pantalla:

SQL COUNT DISTINCT

La sortida de la consulta SELECT anterior és 7 perquè dues cinc cel·les de la columna Teacher_Interview_Marks contenen NULL. I aquests cinc valors NULL estan exclosos. És per això que la consulta SELECT mostra 7 en lloc de 12 al resultat.

Què és la funció Recompte (*)?

Això també és similar a la funció Recompte, però l'única diferència és que també mostra el nombre de valors NULL de la taula.

La sintaxi de la funció Compte (*) es dóna aquí:

 SELECT COUNT(*) FROM Name_of_Table; 

Exemple:

Prenem els detalls del professor anterior:

Teacher_ID Nom_professor Titulació_professor Professor_Edat Teacher_Entrevista_Marques
101 Anuj B.tech 20 88
102 Raman MCA 24 NUL
104 Shyam BBA 19 92
107 Vikash B.tech 20 NUL
111 Monu MBA 21 NUL
114 Jones B.tech 18 93
121 El cabell BCA 20 97
123 Divya B.tech 21 NUL
128 Hemant MBA 23 90
130 Nidhi BBA 20 88
132 Priya MBA 22 NUL
138 Mohit MCA 21 92

La consulta següent compta els valors totals de la Total_punts_de_entrevista columna de la taula anterior:

algorisme de programació round robin
 SELECT COUNT (*) FROM Teacher_Details; 

La consulta anterior SELECT with COUNT(*) donarà el resultat següent a la pantalla:

SQL COUNT DISTINCT

Què és DISTINCT en SQL?

La paraula clau DISTINCT mostra les files úniques de la columna de la taula al resultat.

La sintaxi de la paraula clau DISTINCT es dóna aquí:

 SELECT DISTINCT Name_of_Column FROM Table_Name WHERE [condition]; 

A la consulta DISTINCT, també podem definir la condició a la clàusula WHERE per recuperar els valors específics.

Exemple de DISTINCT

Primer, creeu una taula nova on s'ha d'executar la paraula clau Distinct.

linux mint canyella vs mate

La consulta següent crea el Bike_Details taula utilitzant la instrucció CREATE TABLE:

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

Les consultes SQL següents insereixen el registre de bicicletes noves a la taula mitjançant la instrucció 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); 

Els registres de la taula anterior es mostren mitjançant la següent consulta SELECT:

 SELECT * FROM Bike_Details; 

Bike_Name Bike_Model Bike_Color Bike_Cost
KTM DUKE 2019 Negre 185000
Royal Enfield 2020 Negre 165.000
Cliqueu 2018 Vermell 90000
Apache 2020 Blanc 85,000
Viu 2018 Negre 80,000
KTM RC 2020 Vermell 195,000

Taula: Bike_Details

El següent SQL consulta els diferents valors de la columna Color de l'anterior Bike_Details taula:

 SELECT DISTINCT Bike_Color FROM Bikes ; 

Sortida:

SQL COUNT DISTINCT

Com podem veure, Black, Red i White són tres valors diferents a la columna Bike_Color.

comparació de cadena c#

Funció de recompte amb paraula clau DISTINCT

La paraula clau DISTINCT amb la funció COUNT a la consulta SELECT mostra el nombre de dades úniques del camp de la taula.

La sintaxi de la funció de recompte amb la paraula clau DISTINCT es mostra a continuació:

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

Exemples de funció de recompte amb paraula clau DISTINCT

Els dos exemples SQL següents explicaran l'execució de la funció Count amb la paraula clau Distinct:

Exemple 1:

La consulta següent crea la taula College_Students amb quatre camps:

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

La següent consulta INSERT insereix el registre dels estudiants a la taula 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 consulta següent mostra els detalls de la taula College_Students:

 SELECT * FROM College_Students; 

ID_estudiant Nom de l'estudiant Edat_estudiant Marques_estudiant
101 Akhil 28 95
102 Abhay 27 86
103 Sorya 26 79
104 Abhishek 27 66
105 Hrithik 26 79
106 Yash 29 88

Taula: Universitat_Estudiants

La següent instrucció SQL compta els valors únics de la columna Student_Age de la taula College_Students:

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

Aquesta consulta donarà la taula següent a la sortida:

SQL COUNT DISTINCT

La sortida mostra els quatre valors perquè la columna Teacher_age conté 4 valors únics.

suite d'eines de primavera

Exemple 2:

La consulta següent crea la taula IT_Employee amb quatre camps:

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

La consulta INSERT següent insereix el registre dels empleats de TI a la taula IT_Employee:

 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 consulta següent mostra els detalls de la taula IT_Employee:

 SELECT * FROM IT_Employee; 

Id._empleat Nom d'empleat Edat_empleat Salari_empleat
101 Akhil 28 25000
102 Abhay 27 26000
103 Sorya 26 29000
104 Abhishek 27 26000
105 Hrithik 26 29000
106 Yash 29 25000

Taula: IT_Empleat

La següent instrucció SQL compta només els valors únics de la columna Emp_Age de la taula IT_Employee anterior:

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

Aquesta consulta donarà la següent sortida:

SQL COUNT DISTINCT