logo

SQL COUNT DISTINCT

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
SQL COUNT DISTINCT

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:

SQL COUNT DISTINCT

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:

SQL COUNT DISTINCT

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:

SQL COUNT DISTINCT

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:

SQL COUNT DISTINCT

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:

SQL COUNT DISTINCT