logo

SQL COUNT DISTINCT

Mielőtt megértené a Count Function fogalmát a DISTINCT kulcsszóval, ismernünk kell a Count és Distinct kulcsszavakat. Tehát kezdjük a Count függvénnyel.

Mi a Count az SQL-ben?

A COUNT a strukturált lekérdezési nyelv függvénye, amely a táblázat rekordjainak számát mutatja az eredményben. SQL-ben mindig a SELECT lekérdezésben használják.

A Count függvény szintaxisa az alábbiakban látható:

 SELECT COUNT(Name_of_Column) FROM Name_of_Table; 

A count példában a COUNT kulcsszó után zárójelben kell megadnunk az oszlop nevét.

Példa a Count függvényre

Először is létre kell hoznunk egy új táblát, amelyen a count függvényt végre kell hajtani.

A következő lekérdezés létrehozza a Tanár_Részletek asztallal Tanári_azonosító elsődleges kulcsként a CREATE TABLE utasítás használatával:

java string.format
 CREATE TABLE Teacher_Details ( Teacher_ID INT NOT NULL, Teacher_Name varchar(100), Teacher_Qualification varchar(50), Teacher_Age INT, Teacher_Interview_Marks INT ); 

A következő SQL lekérdezések az INSERT INTO utasítással beszúrják az új tanárok rekordját a fenti táblába:

 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ássuk a fenti táblázat rekordját a következő SELECT utasítással:

 SELECT * FROM Teacher_Details; 

Tanári_azonosító Tanár neve Tanári_Képesítés Tanár_életkor Tanári_interjú_jelek
101 Anuj B.tech húsz 88
102 Raman MCA 24 NULLA
104 Shyam BBA 19 92
107 Vikash B.tech húsz NULLA
111 Monu MBA huszonegy NULLA
114 Jones B.tech 18 93
121 A haj BCA húsz 97
123 Divya B.tech huszonegy NULLA
128 Hemant MBA 23 90
130 Nidhi BBA húsz 88
132 Priya MBA 22 NULLA
138 Mohit MCA huszonegy 92

A következő lekérdezés megszámolja a Teacher_Age oszlop összesített értékét a Teacher_Details táblázatból:

 SELECT COUNT (Teacher_Age) AS Total_Teachers_Age_Column FROM Teacher_Details; 

Kimenet:

SQL COUNT DISTINCT

A fenti SELECT lekérdezés kimenete tizenkettő, mert a Tanár_életkor mező nem tartalmaz NULL értéket.

A következő lekérdezés a Teacher_Interview_Column teljes értékét számolja a fenti táblázatból:

 SELECT COUNT (Teacher_Interview_Marks) AS Total_Teachers_Interview_Marks FROM Teacher_Details; 

Ez a lekérdezés az alábbi kimenetet jeleníti meg a képernyőn:

SQL COUNT DISTINCT

A fenti SELECT lekérdezés kimenete 7, mert a Teacher_Interview_Marks oszlop két öt cellája NULL értéket tartalmaz. És ez az öt NULL érték ki van zárva. Ezért a SELECT lekérdezés 12 helyett 7-et jelenít meg az eredményben.

Mi az a Count(*) függvény?

Ez is hasonló a Count függvényhez, de az egyetlen különbség az, hogy a táblázatból a NULL értékek számát is megjeleníti.

A Count (*) függvény szintaxisa itt található:

 SELECT COUNT(*) FROM Name_of_Table; 

Példa:

a dátumok eltérése Excelben

Vegyük a fenti Teacher_Details-t:

Tanári_azonosító Tanár neve Tanári_Képesítés Tanár_életkor Tanári_interjú_jelek
101 Anuj B.tech húsz 88
102 Raman MCA 24 NULLA
104 Shyam BBA 19 92
107 Vikash B.tech húsz NULLA
111 Monu MBA huszonegy NULLA
114 Jones B.tech 18 93
121 A haj BCA húsz 97
123 Divya B.tech huszonegy NULLA
128 Hemant MBA 23 90
130 Nidhi BBA húsz 88
132 Priya MBA 22 NULLA
138 Mohit MCA huszonegy 92

A következő lekérdezés a teljes értékét számolja Total_Interview_Marks oszlop a fenti táblázatból:

 SELECT COUNT (*) FROM Teacher_Details; 

A fenti SELECT with COUNT(*) lekérdezés az alábbi eredményt adja a képernyőn:

SQL COUNT DISTINCT

Mi a DISTINCT az SQL-ben?

A DISTINCT kulcsszó az oszlop egyedi sorait jeleníti meg a táblázatból az eredményben.

A DISTINCT kulcsszó szintaxisa itt található:

 SELECT DISTINCT Name_of_Column FROM Table_Name WHERE [condition]; 

A DISTINCT lekérdezésben a WHERE záradékban is megadhatjuk a feltételt az adott értékek lekéréséhez.

Példa a DISTINCT-re

Először hozzon létre egy új táblázatot, amelyen a Distinct kulcsszót futtatni kell.

A következő lekérdezés létrehozza a Bike_Details táblázat a CREATE TABLE utasítással:

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

A következő SQL lekérdezések az INSERT INTO utasítással beszúrják az új kerékpárok rekordját a táblázatba:

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

A fenti táblázat rekordjai a következő SELECT lekérdezéssel jelennek meg:

 SELECT * FROM Bike_Details; 

Bike_Name Bike_Model Bike_Color Bike_Cost
KTM DUKE 2019 Fekete 185 000
Royal Enfield 2020 Fekete 165 000
nyomja meg 2018 Piros 90000
Apache 2020 fehér 85 000
Élő 2018 Fekete 80.000
KTM RC 2020 Piros 195 000

Asztal: Bike_Details

A következő SQL lekérdezi a Color oszlop fentiektől eltérő értékeit Bike_Details asztal:

 SELECT DISTINCT Bike_Color FROM Bikes ; 

Kimenet:

SQL COUNT DISTINCT

Amint látjuk, a Fekete, Piros és Fehér három különálló érték a Bike_Color oszlopban.

Számoló függvény DISTINCT kulcsszóval

A DISTINCT kulcsszó a COUNT függvénnyel a SELECT lekérdezésben megjeleníti a mező egyedi adatainak számát a táblázatból.

A DISTINCT kulcsszóval rendelkező Count függvény szintaxisa az alábbiakban látható:

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

Példák a DISTINCT kulcsszóval rendelkező Count függvényre

A következő két SQL-példa elmagyarázza a Count Function Distinct kulcsszóval történő végrehajtását:

1. példa:

A következő lekérdezés létrehozza a College_Students táblát négy mezővel:

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

A következő INSERT lekérdezés beszúrja a hallgatók rekordját a College_Students táblába:

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

A következő lekérdezés a College_Students táblázat részleteit mutatja:

 SELECT * FROM College_Students; 

Diákigazolvány Tanuló név Diák_kor 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

Táblázat: Főiskola_Diákok

A következő SQL utasítás a College_Students tábla Student_Age oszlopának egyedi értékeit számolja meg:

mi az f5 a billentyűzeten
 SELECT COUNT (DISTINCT (Student_Age) AS Unique_Age FROM College_Students ; 

Ez a lekérdezés az alábbi táblázatot adja a kimenetben:

SQL COUNT DISTINCT

A kimenet a négy értéket mutatja, mivel a Teacher_age oszlop 4 egyedi értéket tartalmaz.

2. példa:

A következő lekérdezés létrehozza az IT_Employee táblát négy mezővel:

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

A következő INSERT lekérdezés beszúrja az IT-alkalmazottak rekordját az IT_Employee táblába:

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

A következő lekérdezés az IT_Employee tábla részleteit jeleníti meg:

 SELECT * FROM IT_Employee; 

Munkavállalói azonosító Alkalmazott Neve Munkavállaló_életkora Munkavállalói fizetés
101 Akhil 28 25000
102 Abhay 27 26000
103 Sorya 26 29000
104 Abhishek 27 26000
105 Hrithik 26 29000
106 Yash 29 25000

Táblázat: IT_Munkavállaló

A következő SQL utasítás csak az Emp_Age oszlop egyedi értékeit számolja a fenti IT_Employee táblából:

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

Ez a lekérdezés az alábbi kimenetet adja:

SQL COUNT DISTINCT