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