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