logo

SQL COUNT DISTINCT

Før vi forstår konseptet med Count Function med DISTINCT-nøkkelordet, må vi vite om Count og Distinct-nøkkelordene. Så la oss starte med Count-funksjonen.

Hva er Count i SQL?

COUNT er en funksjon i Structured Query Language som viser antall poster fra tabellen i resultatet. I SQL brukes den alltid i SELECT-spørringen.

Syntaksen til Count-funksjonen er gitt nedenfor:

 SELECT COUNT(Name_of_Column) FROM Name_of_Table; 

I telleeksemplet må vi definere navnet på kolonnen i parentes like etter nøkkelordet COUNT.

Eksempel på tellefunksjon

Først må vi lage en ny tabell der tellefunksjonen skal utføres.

Følgende spørring oppretter Lærer_detaljer bord med Teacher_ID som primærnøkkel ved å bruke CREATE TABLE-setningen:

 CREATE TABLE Teacher_Details ( Teacher_ID INT NOT NULL, Teacher_Name varchar(100), Teacher_Qualification varchar(50), Teacher_Age INT, Teacher_Interview_Marks INT ); 

Følgende SQL-spørringer setter inn oppføringen av nye lærere i tabellen ovenfor ved hjelp av INSERT INTO-setningen:

 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); 

La oss se oversikten over tabellen ovenfor ved å bruke følgende SELECT-setning:

 SELECT * FROM Teacher_Details; 

Teacher_ID Lærernavn Teacher_Qualification Lærer_Alder Lærerintervju_merker
101 Anuj B.tech tjue 88
102 Raman MCA 24 NULL
104 Shyam BBA 19 92
107 Vikash B.tech tjue NULL
111 Monu MBA tjueen NULL
114 Jones B.tech 18 93
121 Håret BCA tjue 97
123 Divya B.tech tjueen NULL
128 Hemant MBA 23 90
130 Nidhi BBA tjue 88
132 Priya MBA 22 NULL
138 Mohit MCA tjueen 92

Følgende spørring teller de totale verdiene for Teacher_Age-kolonnen fra Teacher_Details-tabellen:

 SELECT COUNT (Teacher_Age) AS Total_Teachers_Age_Column FROM Teacher_Details; 

Produksjon:

SQL COUNT DISTINCT

Utdataene fra SELECT-spørringen ovenfor er tolv fordi Lærer_Alder feltet inneholder ingen NULL-verdi.

Følgende spørring teller de totale verdiene for Teacher_Interview_Column fra tabellen ovenfor:

 SELECT COUNT (Teacher_Interview_Marks) AS Total_Teachers_Interview_Marks FROM Teacher_Details; 

Denne spørringen vil vise utdataene nedenfor på skjermen:

SQL COUNT DISTINCT

Utdata fra SELECT-spørringen ovenfor er 7 fordi to fem celler i kolonnen Teacher_Interview_Marks inneholder NULL. Og disse fem NULL-verdiene er ekskludert. Det er derfor SELECT-spørringen viser 7 i stedet for 12 i resultatet.

Hva er Count(*)-funksjonen?

Dette ligner også på Count-funksjonen, men den eneste forskjellen er at den også viser antall NULL-verdier fra tabellen.

Syntaksen til Count (*)-funksjonen er gitt her:

 SELECT COUNT(*) FROM Name_of_Table; 

Eksempel:

string split bash

La oss ta Teacher_Details ovenfor:

Teacher_ID Lærernavn Teacher_Qualification Lærer_Alder Lærerintervju_merker
101 Anuj B.tech tjue 88
102 Raman MCA 24 NULL
104 Shyam BBA 19 92
107 Vikash B.tech tjue NULL
111 Monu MBA tjueen NULL
114 Jones B.tech 18 93
121 Håret BCA tjue 97
123 Divya B.tech tjueen NULL
128 Hemant MBA 23 90
130 Nidhi BBA tjue 88
132 Priya MBA 22 NULL
138 Mohit MCA tjueen 92

Følgende spørring teller de totale verdiene for Totalt_intervju_merker kolonne fra tabellen ovenfor:

 SELECT COUNT (*) FROM Teacher_Details; 

Ovennevnte SELECT med COUNT(*) spørring vil gi resultatet nedenfor på skjermen:

SQL COUNT DISTINCT

Hva er DISTINCT i SQL?

Nøkkelordet DISTINCT viser de unike radene i kolonnen fra tabellen i resultatet.

Syntaksen til DISTINCT-nøkkelordet er gitt her:

 SELECT DISTINCT Name_of_Column FROM Table_Name WHERE [condition]; 

I DISTINCT-spørringen kan vi også definere betingelsen i WHERE-leddet for å hente de spesifikke verdiene.

Eksempel på DISTINCT

Først oppretter du en ny tabell der Distinct-nøkkelordet skal kjøres.

Følgende spørring oppretter Sykkel_detaljer tabell ved å bruke CREATE TABLE-setningen:

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

Følgende SQL-spørringer setter inn oppføringen av nye sykler i tabellen ved hjelp av INSERT INTO-setningen:

 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); 

Postene i tabellen ovenfor vises ved å bruke følgende SELECT-spørring:

 SELECT * FROM Bike_Details; 

Bike_Name Sykkel_Modell Sykkel_farge Bike_Cost
KTM DUKE 2019 Svart 185 000
Royal Enfield 2020 Svart 165 000
trykk 2018 rød 90 000
Apache 2020 Hvit 85 000
Bo 2018 Svart 80 000
KTM RC 2020 rød 195 000

Bord: Sykkel_detaljer

Følgende SQL spør etter de distinkte verdiene for kolonnen Farge fra ovenstående Sykkel_detaljer bord:

 SELECT DISTINCT Bike_Color FROM Bikes ; 

Produksjon:

SQL COUNT DISTINCT

Som vi kan se, er svart, rød og hvit tre forskjellige verdier i Bike_Color-kolonnen.

Tellefunksjon med DISTINCT nøkkelord

Nøkkelordet DISTINCT med COUNT-funksjonen i SELECT-spørringen viser antall unike data for feltet fra tabellen.

Syntaksen for tellefunksjon med DISTINCT nøkkelord er gitt nedenfor:

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

Eksempler på tellefunksjon med DISTINCT nøkkelord

De følgende to SQL-eksemplene vil forklare utførelsen av Count Function med Distinct nøkkelord:

localdate java

Eksempel 1:

Følgende spørring oppretter College_Students-tabellen med fire felt:

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

Følgende INSERT-spørring setter inn posten med studenter i College_Students-tabellen:

 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); 

Følgende spørring viser detaljene i College_Students-tabellen:

 SELECT * FROM College_Students; 

Student ID Student navn Student_Alder Student_Marks
101 Akhil 28 95
102 Abhay 27 86
103 Sorya 26 79
104 Abhishek 27 66
105 Hrithik 26 79
106 Yash 29 88

Tabell: Høyskole_Studenter

Følgende SQL-setning teller de unike verdiene til Student_Age-kolonnen fra College_Students-tabellen:

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

Denne spørringen vil gi tabellen nedenfor i utdataene:

SQL COUNT DISTINCT

Utdataene viser de fire verdiene fordi Teacher_age-kolonnen inneholder 4 unike verdier.

Eksempel 2:

Følgende spørring oppretter IT_Employee-tabellen med fire felt:

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

Følgende INSERT-spørring setter inn oppføringen av IT-ansatte i IT_Employee-tabellen:

 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); 

Følgende spørring viser detaljene i IT_Employee-tabellen:

 SELECT * FROM IT_Employee; 

Ansatt ID Ansattes navn Ansatt_Alder Ansatt_Lønn
101 Akhil 28 25 000
102 Abhay 27 26000
103 Sorya 26 29 000
104 Abhishek 27 26000
105 Hrithik 26 29 000
106 Yash 29 25 000

Tabell: IT_Ansatt

Følgende SQL-setning teller bare de unike verdiene til Emp_Age-kolonnen fra tabellen over IT_Employee:

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

Denne spørringen vil gi følgende utdata:

SQL COUNT DISTINCT