Innan vi förstår konceptet med Count Function med nyckelordet DISTINCT måste vi känna till nyckelorden Count och Distinct. Så låt oss börja med funktionen Räkna.
Vad är Count i SQL?
COUNT är en funktion i Structured Query Language som visar antalet poster från tabellen i resultatet. I SQL används det alltid i SELECT-frågan.
Syntaxen för Count-funktionen ges nedan:
SELECT COUNT(Name_of_Column) FROM Name_of_Table;
I räkneexemplet måste vi definiera namnet på kolumnen inom parentes precis efter nyckelordet COUNT.
Exempel på räknefunktion
Först måste vi skapa en ny tabell där räknefunktionen ska köras.
Följande fråga skapar Lärare_detaljer bord med Teacher_ID som primärnyckel med CREATE TABLE-satsen:
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öljande SQL-frågor infogar posten för nya lärare i tabellen ovan med hjälp av INSERT INTO-satsen:
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);
Låt oss se posten för tabellen ovan med följande SELECT-sats:
SELECT * FROM Teacher_Details;
Teacher_ID | Lärarnamn | Teacher_Qualification | Teacher_Age | Lärare_intervju_märken |
---|---|---|---|---|
101 | Anuj | B Tech | tjugo | 88 |
102 | Raman | MCA | 24 | NULL |
104 | Shyam | BBA | 19 | 92 |
107 | Vikash | B Tech | tjugo | NULL |
111 | Monu | MBA | tjugoett | NULL |
114 | Jones | B Tech | 18 | 93 |
121 | Håret | BCA | tjugo | 97 |
123 | Divya | B Tech | tjugoett | NULL |
128 | Hemant | MBA | 23 | 90 |
130 | Nidhi | BBA | tjugo | 88 |
132 | Priya | MBA | 22 | NULL |
138 | Mohit | MCA | tjugoett | 92 |
Följande fråga räknar de totala värdena i kolumnen Teacher_Age från tabellen Teacher_Details:
SELECT COUNT (Teacher_Age) AS Total_Teachers_Age_Column FROM Teacher_Details;
Produktion:
java för loop
Utdata från ovanstående SELECT-fråga är tolv eftersom Teacher_Age fältet innehåller inget NULL-värde.
Följande fråga räknar de totala värdena för Teacher_Interview_Column från tabellen ovan:
SELECT COUNT (Teacher_Interview_Marks) AS Total_Teachers_Interview_Marks FROM Teacher_Details;
Denna fråga kommer att visa nedanstående utdata på skärmen:
Utdata från SELECT-frågan ovan är 7 eftersom två fem celler i kolumnen Teacher_Interview_Marks innehåller NULL. Och dessa fem NULL-värden är exkluderade. Det är därför SELECT-frågan visar 7 istället för 12 i resultatet.
Vad är Count(*)-funktionen?
Detta liknar också Count-funktionen, men den enda skillnaden är att den också visar antalet NULL-värden från tabellen.
Syntaxen för Count (*)-funktionen ges här:
SELECT COUNT(*) FROM Name_of_Table;
Exempel:
vad är ymail
Låt oss ta ovanstående Teacher_Details:
Teacher_ID | Lärarnamn | Teacher_Qualification | Teacher_Age | Lärare_intervju_märken |
---|---|---|---|---|
101 | Anuj | B Tech | tjugo | 88 |
102 | Raman | MCA | 24 | NULL |
104 | Shyam | BBA | 19 | 92 |
107 | Vikash | B Tech | tjugo | NULL |
111 | Monu | MBA | tjugoett | NULL |
114 | Jones | B Tech | 18 | 93 |
121 | Håret | BCA | tjugo | 97 |
123 | Divya | B Tech | tjugoett | NULL |
128 | Hemant | MBA | 23 | 90 |
130 | Nidhi | BBA | tjugo | 88 |
132 | Priya | MBA | 22 | NULL |
138 | Mohit | MCA | tjugoett | 92 |
Följande fråga räknar de totala värdena för Total_Interview_Marks kolumn från tabellen ovan:
SELECT COUNT (*) FROM Teacher_Details;
Ovanstående SELECT med COUNT(*)-fråga ger följande resultat på skärmen:
Vad är DISTINCT i SQL?
Nyckelordet DISTINCT visar de unika raderna i kolumnen från tabellen i resultatet.
Syntaxen för nyckelordet DISTINCT ges här:
SELECT DISTINCT Name_of_Column FROM Table_Name WHERE [condition];
I DISTINCT-frågan kan vi också definiera villkoret i WHERE-satsen för att hämta de specifika värdena.
Exempel på DISTINCT
Skapa först en ny tabell där nyckelordet Distinkt ska köras.
inaktivera utvecklarläget
Följande fråga skapar Cykel_detaljer tabell med CREATE TABLE-satsen:
CREATE TABLE Bike_Details ( Bike_Name varchar(100), Bike_Model INT, Bike_Color varchar(50), Bike_Cost INT );
Följande SQL-frågor infogar posten för nya cyklar i tabellen med hjälp av INSERT INTO-satsen:
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);
Posterna i tabellen ovan visas med hjälp av följande SELECT-fråga:
SELECT * FROM Bike_Details;
Bike_Name | Cykel_Modell | Bike_Color | Cykel_Kostnad |
---|---|---|---|
KTM DUKE | 2019 | Svart | 185 000 |
Royal Enfield | 2020 | Svart | 165 000 |
Tryck | 2018 | Röd | 90 000 |
Apache | 2020 | Vit | 85 000 |
leva | 2018 | Svart | 80 000 |
KTM RC | 2020 | Röd | 195 000 |
Tabell: Cykel_detaljer
Följande SQL frågar efter de distinkta värdena i kolumnen Färg från ovanstående Cykel_detaljer tabell:
SELECT DISTINCT Bike_Color FROM Bikes ;
Produktion:
Som vi kan se är svart, rött och vitt tre distinkta värden i kolumnen Bike_Color.
Räknefunktion med DISTINCT nyckelord
Nyckelordet DISTINCT med COUNT-funktionen i SELECT-frågan visar antalet unika data för fältet från tabellen.
Syntaxen för räknefunktionen med DISTINCT nyckelord anges nedan:
SELECT COUNT(DISTINCT (Column_Name) FROM table_name WHERE [condition];
Exempel på räknefunktion med DISTINCT nyckelord
Följande två SQL-exempel kommer att förklara exekveringen av Count Function med Distinct nyckelord:
Exempel 1:
Följande fråga skapar tabellen College_Students med fyra fält:
CREATE TABLE College_Students ( Student_Id INT NOT NULL, Student_Name Varchar (40), Student_Age INT, Student_Marks INT );
Följande INSERT-fråga infogar posten för studenter i tabellen 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);
Följande fråga visar detaljerna i tabellen College_Students:
SELECT * FROM College_Students;
Student-ID | Elevs namn | Student_Ålder | 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: College_Students
Följande SQL-sats räknar de unika värdena i kolumnen Student_Age från tabellen College_Students:
SELECT COUNT (DISTINCT (Student_Age) AS Unique_Age FROM College_Students ;
Denna fråga ger tabellen nedan i utdata:
Utdata visar de fyra värdena eftersom kolumnen Teacher_age innehåller fyra unika värden.
Exempel 2:
Följande fråga skapar tabellen IT_Employee med fyra fält:
CREATE TABLE IT_Employee ( Employee_Id INT NOT NULL, Employee_Name Varchar (40), Emp_Age INT, Employee_Salary INT );
Följande INSERT-fråga infogar posten för IT-anställda i tabellen IT_Employee:
rajesh khanna
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öljande fråga visar detaljerna i tabellen IT_Employee:
SELECT * FROM IT_Employee;
Anställnings-ID | Anställd Namn | Employee_Age | Anställd_Lön |
---|---|---|---|
101 | Akhil | 28 | 25 000 |
102 | Abhay | 27 | 26 000 |
103 | Sorya | 26 | 29 000 |
104 | Abhishek | 27 | 26 000 |
105 | Hrithik | 26 | 29 000 |
106 | Yash | 29 | 25 000 |
Tabell: IT_Anställd
Följande SQL-sats räknar endast de unika värdena i kolumnen Emp_Age från ovanstående IT_Employee-tabell:
SELECT COUNT (DISTINCT (Employee_Age)) AS Unique_Age FROM IT_Employee ;
Denna fråga ger följande utdata: