logo

SQL COUNT DISTINCT

Før vi forstår begrebet Count Function med DISTINCT nøgleordet, skal vi kende til Count og Distinct nøgleordene. Så lad os starte med Count funktionen.

Hvad er Count i SQL?

COUNT er en funktion i Structured Query Language, der viser antallet af poster fra tabellen i resultatet. I SQL bruges det altid i SELECT-forespørgslen.

Syntaksen for Count-funktionen er angivet nedenfor:

 SELECT COUNT(Name_of_Column) FROM Name_of_Table; 

I tælleeksemplet skal vi definere navnet på kolonnen i parentes lige efter nøgleordet COUNT.

Eksempel på tællefunktion

For det første skal vi lave en ny tabel, hvorpå tællefunktionen skal udføres.

Følgende forespørgsel opretter Lærer_Detaljer bord med Teacher_ID som den primære nøgle ved hjælp af CREATE TABLE-sætningen:

 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-forespørgsler indsætter posten for nye lærere i ovenstående tabel ved hjælp af INSERT INTO-sætningen:

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

Lad os se registreringen af ​​ovenstående tabel ved hjælp af følgende SELECT-sætning:

 SELECT * FROM Teacher_Details; 

Teacher_ID Lærer_navn Lærer_Kvalifikation Lærer_Alder Lærerinterview_mærker
101 Anuj B.tech tyve 88
102 Raman MCA 24 NUL
104 Shyam BBA 19 92
107 Vikash B.tech tyve NUL
111 Monu MBA enogtyve NUL
114 Jones B.tech 18 93
121 Håret BCA tyve 97
123 Divya B.tech enogtyve NUL
128 Hemant MBA 23 90
130 Nidhi BBA tyve 88
132 Priya MBA 22 NUL
138 Mohit MCA enogtyve 92

Følgende forespørgsel tæller de samlede værdier af kolonnen Teacher_Age fra tabellen Teacher_Details:

 SELECT COUNT (Teacher_Age) AS Total_Teachers_Age_Column FROM Teacher_Details; 

Produktion:

SQL COUNT DISTINCT

Outputtet af ovenstående SELECT-forespørgsel er tolv, fordi Lærer_Alder feltet indeholder ikke nogen NULL-værdi.

Følgende forespørgsel tæller de samlede værdier af Teacher_Interview_Column fra ovenstående tabel:

 SELECT COUNT (Teacher_Interview_Marks) AS Total_Teachers_Interview_Marks FROM Teacher_Details; 

Denne forespørgsel vil vise nedenstående output på skærmen:

SQL COUNT DISTINCT

Outputtet af ovenstående SELECT-forespørgsel er 7, fordi to fem celler i kolonnen Teacher_Interview_Marks indeholder NULL. Og disse fem NULL-værdier er udelukket. Det er derfor, SELECT-forespørgslen viser 7 i stedet for 12 i resultatet.

Hvad er Count(*)-funktionen?

Dette ligner også Count-funktionen, men den eneste forskel er, at den også viser antallet af NULL-værdier fra tabellen.

Syntaksen for Count (*)-funktionen er angivet her:

 SELECT COUNT(*) FROM Name_of_Table; 

Eksempel:

string split bash

Lad os tage ovenstående Teacher_Details:

Teacher_ID Lærer_navn Lærer_Kvalifikation Lærer_Alder Lærerinterview_mærker
101 Anuj B.tech tyve 88
102 Raman MCA 24 NUL
104 Shyam BBA 19 92
107 Vikash B.tech tyve NUL
111 Monu MBA enogtyve NUL
114 Jones B.tech 18 93
121 Håret BCA tyve 97
123 Divya B.tech enogtyve NUL
128 Hemant MBA 23 90
130 Nidhi BBA tyve 88
132 Priya MBA 22 NUL
138 Mohit MCA enogtyve 92

Følgende forespørgsel tæller de samlede værdier af Total_Interview_Marks kolonne fra ovenstående tabel:

 SELECT COUNT (*) FROM Teacher_Details; 

Ovenstående SELECT med COUNT(*) forespørgsel vil give nedenstående resultat på skærmen:

SQL COUNT DISTINCT

Hvad er DISTINCT i SQL?

Nøgleordet DISTINCT viser de unikke rækker i kolonnen fra tabellen i resultatet.

Syntaksen for DISTINCT søgeordet er angivet her:

 SELECT DISTINCT Name_of_Column FROM Table_Name WHERE [condition]; 

I DISTINCT-forespørgslen kan vi også definere betingelsen i WHERE-sætningen for at hente de specifikke værdier.

Eksempel på DISTINCT

Først skal du oprette en ny tabel, hvorpå Distinct-søgeordet skal køres.

Følgende forespørgsel opretter Cykel_detaljer tabel ved hjælp af CREATE TABLE-sætningen:

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

Følgende SQL-forespørgsler indsætter registreringen af ​​nye cykler i tabellen ved hjælp af INSERT INTO-sætningen:

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

Posterne i ovenstående tabel vises ved at bruge følgende SELECT-forespørgsel:

 SELECT * FROM Bike_Details; 

Bike_Name Cykel_Model Cykel_Farve Cykel_omkostninger
KTM DUKE 2019 Sort 185.000
Royal Enfield 2020 Sort 165.000
Trykke 2018 Rød 90.000
Apache 2020 hvid 85.000
Direkte 2018 Sort 80.000
KTM RC 2020 Rød 195.000

Bord: Cykel_detaljer

Følgende SQL forespørger om de forskellige værdier i kolonnen Farve fra ovenstående Cykel_detaljer bord:

 SELECT DISTINCT Bike_Color FROM Bikes ; 

Produktion:

SQL COUNT DISTINCT

Som vi kan se, er sort, rød og hvid tre forskellige værdier i kolonnen Bike_Color.

Tællefunktion med DISTINCT nøgleord

Nøgleordet DISTINCT med COUNT-funktionen i SELECT-forespørgslen viser antallet af unikke data for feltet fra tabellen.

Syntaksen for tællefunktionen med DISTINCT nøgleord er angivet nedenfor:

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

Eksempler på tællefunktion med DISTINCT nøgleord

De følgende to SQL-eksempler vil forklare udførelsen af ​​Count Function med Distinct nøgleord:

localdate java

Eksempel 1:

Følgende forespørgsel opretter College_Students-tabellen med fire felter:

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

Følgende INSERT-forespørgsel indsætter posten for studerende 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 forespørgsel viser detaljerne i tabellen College_Students:

 SELECT * FROM College_Students; 

Studiekort Elevnavn 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

Tabel: College_Students

Følgende SQL-sætning tæller de unikke værdier i kolonnen Student_Age fra College_Students-tabellen:

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

Denne forespørgsel vil give nedenstående tabel i outputtet:

SQL COUNT DISTINCT

Outputtet viser de fire værdier, fordi kolonnen Teacher_age indeholder 4 unikke værdier.

Eksempel 2:

Følgende forespørgsel opretter IT_Employee-tabellen med fire felter:

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

Følgende INSERT-forespørgsel indsætter posten for it-medarbejdere i tabellen 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); 

Følgende forespørgsel viser detaljerne i tabellen IT_Employee:

 SELECT * FROM IT_Employee; 

Medarbejder-ID Ansattes navn Medarbejder_Alder Medarbejder_Løn
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

Tabel: IT_Medarbejder

Følgende SQL-sætning tæller kun de unikke værdier i kolonnen Emp_Age fra ovenstående IT_Employee-tabel:

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

Denne forespørgsel vil give nedenstående output:

SQL COUNT DISTINCT