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