logo

CONTEGGIO SQL DISTINTO

Prima di comprendere il concetto di funzione Count con la parola chiave DISTINCT, dobbiamo conoscere le parole chiave Count e Distinct. Quindi iniziamo con la funzione Conteggio.

Cos'è il conteggio in SQL?

Il COUNT è una funzione in Structured Query Language che mostra il numero di record della tabella nel risultato. In SQL, viene sempre utilizzato nella query SELECT.

La sintassi della funzione Count è la seguente:

 SELECT COUNT(Name_of_Column) FROM Name_of_Table; 

Nell'esempio di conteggio, dobbiamo definire il nome della colonna tra parentesi subito dopo la parola chiave COUNT.

Esempio di funzione di conteggio

Per prima cosa dobbiamo creare una nuova tabella sulla quale eseguire la funzione count.

La query seguente crea il file Insegnante_Dettagli tavolo con ID_insegnante come chiave primaria utilizzando l'istruzione 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 ); 

Le seguenti query SQL inseriscono il record dei nuovi insegnanti nella tabella precedente utilizzando l'istruzione 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); 

Vediamo il record della tabella precedente utilizzando la seguente istruzione SELECT:

 SELECT * FROM Teacher_Details; 

ID_insegnante Nome dell'insegnante Insegnante_Qualificazione Insegnante_Età Insegnante_Intervista_Marchi
101 Anuj B.tech venti 88
102 Ramann MCA 24 NULLO
104 Shyam BBA 19 92
107 Vikash B.tech venti NULLO
111 Monu MBA ventuno NULLO
114 Jones B.tech 18 93
121 I capelli BCA venti 97
123 Divya B.tech ventuno NULLO
128 Hemant MBA 23 90
130 Nidhi BBA venti 88
132 Prija MBA 22 NULLO
138 Mohit MCA ventuno 92

La seguente query conta i valori totali della colonna Teacher_Age dalla tabella Teacher_Details:

 SELECT COUNT (Teacher_Age) AS Total_Teachers_Age_Column FROM Teacher_Details; 

Produzione:

CONTEGGIO SQL DISTINTO

L'output della query SELECT precedente è dodici perché il Insegnante_Età il campo non contiene alcun valore NULL.

La seguente query conta i valori totali di Teacher_Interview_Column dalla tabella precedente:

 SELECT COUNT (Teacher_Interview_Marks) AS Total_Teachers_Interview_Marks FROM Teacher_Details; 

Questa query mostrerà l'output seguente sullo schermo:

CONTEGGIO SQL DISTINTO

L'output della query SELECT precedente è 7 perché due cinque celle della colonna Teacher_Interview_Marks contengono NULL. E questi cinque valori NULL sono esclusi. Ecco perché la query SELECT visualizza 7 anziché 12 nel risultato.

Cos'è la funzione Conteggio (*)?

Anche questa è simile alla funzione Count, ma l'unica differenza è che visualizza anche il numero di valori NULL dalla tabella.

La sintassi della funzione Count (*) è fornita qui:

 SELECT COUNT(*) FROM Name_of_Table; 

Esempio:

modello ip tcp

Prendiamo quanto sopra Teacher_Details:

ID_insegnante Nome dell'insegnante Insegnante_Qualificazione Insegnante_Età Insegnante_Intervista_Marchi
101 Anuj B.tech venti 88
102 Ramann MCA 24 NULLO
104 Shyam BBA 19 92
107 Vikash B.tech venti NULLO
111 Monu MBA ventuno NULLO
114 Jones B.tech 18 93
121 I capelli BCA venti 97
123 Divya B.tech ventuno NULLO
128 Hemant MBA 23 90
130 Nidhi BBA venti 88
132 Prija MBA 22 NULLO
138 Mohit MCA ventuno 92

La query seguente conta i valori totali di Total_Interview_Marks colonna dalla tabella sopra:

 SELECT COUNT (*) FROM Teacher_Details; 

La query SELECT with COUNT(*) di cui sopra darà il risultato seguente sullo schermo:

CONTEGGIO SQL DISTINTO

Cos'è DISTINCT in SQL?

La parola chiave DISTINCT mostra le righe univoche della colonna della tabella nel risultato.

La sintassi della parola chiave DISTINCT è riportata di seguito:

 SELECT DISTINCT Name_of_Column FROM Table_Name WHERE [condition]; 

Nella query DISTINCT possiamo anche definire la condizione nella clausola WHERE per recuperare i valori specifici.

Esempio di DISTINTO

Innanzitutto, crea una nuova tabella su cui eseguire la parola chiave Distinct.

La query seguente crea il file Bici_Dettagli tabella utilizzando l'istruzione CREATE TABLE:

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

Le seguenti query SQL inseriscono il record delle nuove biciclette nella tabella utilizzando l'istruzione 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); 

I record della tabella precedente vengono visualizzati utilizzando la seguente query SELECT:

 SELECT * FROM Bike_Details; 

Nome_bici Modello_bici Bici_Colore Bici_Costo
KTM DUCA 2019 Nero 185000
Reale Enfield 2020 Nero 165000
Premere 2018 Rosso 90000
Apache 2020 Bianco 85.000
Vivere 2018 Nero 80.000
KTMRC 2020 Rosso 195.000

Tavolo: Bici_Dettagli

Il seguente SQL interroga i valori distinti della colonna Color da quanto sopra Bici_Dettagli tavolo:

 SELECT DISTINCT Bike_Color FROM Bikes ; 

Produzione:

CONTEGGIO SQL DISTINTO

Come possiamo vedere, Nero, Rosso e Bianco sono tre valori distinti nella colonna Bike_Color.

Funzione di conteggio con parola chiave DISTINCT

La parola chiave DISTINCT con la funzione COUNT nella query SELECT visualizza il numero di dati univoci del campo dalla tabella.

Di seguito è riportata la sintassi della funzione Count con la parola chiave DISTINCT:

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

Esempi di funzione Count con parola chiave DISTINCT

I due esempi SQL seguenti spiegheranno l'esecuzione della funzione Count con la parola chiave Distinct:

differenza tra ghiaccio e neve

Esempio 1:

La query seguente crea la tabella College_Students con quattro campi:

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

La seguente query INSERT inserisce il record degli studenti nella tabella 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 query seguente mostra i dettagli della tabella College_Students:

 SELECT * FROM College_Students; 

Student_Id Nome dello studente Studente_Età Student_Marks
101 Akhil 28 95
102 Abhay 27 86
103 Sorya 26 79
104 Abhishek 27 66
105 Hrithik 26 79
106 Già 29 88

Tabella: College_Studenti

La seguente istruzione SQL conta i valori univoci della colonna Student_Age dalla tabella College_Students:

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

Questa query fornirà nell'output la tabella seguente:

CONTEGGIO SQL DISTINTO

L'output mostra i quattro valori perché la colonna Teacher_age contiene 4 valori univoci.

Esempio 2:

La seguente query crea la tabella IT_Employee con quattro campi:

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

La seguente query INSERT inserisce il record dei dipendenti IT nella tabella 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 seguente query mostra i dettagli della tabella IT_Employee:

 SELECT * FROM IT_Employee; 

ID Dipendente Nome dipendente Dipendente_Età Dipendente_Stipendio
101 Akhil 28 25000
102 Abhay 27 26000
103 Sorya 26 29000
104 Abhishek 27 26000
105 Hrithik 26 29000
106 Già 29 25000

Tabella: IT_Dipendente

La seguente istruzione SQL conta solo i valori univoci della colonna Emp_Age dalla tabella IT_Employee precedente:

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

Questa query fornirà l'output seguente:

CONTEGGIO SQL DISTINTO