logo

SQL COUNT DISTINCT

Než pochopíme koncept funkce Count s klíčovým slovem DISTINCT, musíme vědět o klíčových slovech Count a Distinct. Začněme tedy funkcí Count.

Co je Count v SQL?

COUNT je funkce v jazyce Structured Query Language, která zobrazuje počet záznamů z tabulky ve výsledku. V SQL se vždy používá v dotazu SELECT.

Syntaxe funkce Count je uvedena níže:

 SELECT COUNT(Name_of_Column) FROM Name_of_Table; 

V příkladu počtu musíme definovat název sloupce v závorce hned za klíčovým slovem COUNT.

Příklad funkce počítání

Nejprve musíme vytvořit novou tabulku, na které se má funkce počítat.

Následující dotaz vytvoří Učitel_Podrobnosti stůl s Učitel_ID jako primární klíč pomocí příkazu CREATE TABLE:

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

Následující SQL dotazy vloží záznam o nových učitelích do výše uvedené tabulky pomocí příkazu INSERT INTO:

kyselé vlastnosti v dbms
 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); 

Podívejme se na záznam výše uvedené tabulky pomocí následujícího příkazu SELECT:

 SELECT * FROM Teacher_Details; 

Učitel_ID Jméno učitele Učitel_Kvalifikace Učitel_Věk Učitel_rozhovor_Marks
101 Anuj B tech dvacet 88
102 Raman MCA 24 NULA
104 Shyam BBA 19 92
107 Vikash B tech dvacet NULA
111 Monu MBA dvacet jedna NULA
114 Jones B tech 18 93
121 Vlasy BCA dvacet 97
123 Divya B tech dvacet jedna NULA
128 Hemant MBA 23 90
130 Nidhi BBA dvacet 88
132 Priya MBA 22 NULA
138 Mohit MCA dvacet jedna 92

Následující dotaz počítá celkové hodnoty sloupce Teacher_Age z tabulky Teacher_Details:

 SELECT COUNT (Teacher_Age) AS Total_Teachers_Age_Column FROM Teacher_Details; 

Výstup:

SQL COUNT DISTINCT

Výstup výše uvedeného dotazu SELECT je dvanáct, protože Učitel_Věk pole neobsahuje žádnou hodnotu NULL.

Následující dotaz počítá celkové hodnoty Teacher_Interview_Column z výše uvedené tabulky:

 SELECT COUNT (Teacher_Interview_Marks) AS Total_Teachers_Interview_Marks FROM Teacher_Details; 

Tento dotaz zobrazí na obrazovce níže uvedený výstup:

SQL COUNT DISTINCT

Výstup výše uvedeného dotazu SELECT je 7, protože dvě pět buněk sloupce Teacher_Interview_Marks obsahuje NULL. A těchto pět hodnot NULL je vyloučeno. Proto dotaz SELECT ve výsledku zobrazí 7 místo 12.

Co je funkce Count(*)?

To je také podobné funkci Count, ale jediný rozdíl je v tom, že zobrazuje také počet hodnot NULL z tabulky.

Syntaxe funkce Count (*) je uvedena zde:

 SELECT COUNT(*) FROM Name_of_Table; 

Příklad:

Vezměme si výše uvedené Teacher_Details:

Učitel_ID Jméno učitele Učitel_Kvalifikace Učitel_Věk Učitel_rozhovor_Marks
101 Anuj B tech dvacet 88
102 Raman MCA 24 NULA
104 Shyam BBA 19 92
107 Vikash B tech dvacet NULA
111 Monu MBA dvacet jedna NULA
114 Jones B tech 18 93
121 Vlasy BCA dvacet 97
123 Divya B tech dvacet jedna NULA
128 Hemant MBA 23 90
130 Nidhi BBA dvacet 88
132 Priya MBA 22 NULA
138 Mohit MCA dvacet jedna 92

Následující dotaz počítá celkové hodnoty Total_Interview_Marks sloupec z výše uvedené tabulky:

 SELECT COUNT (*) FROM Teacher_Details; 

Výše uvedený dotaz SELECT s COUNT(*) poskytne na obrazovce níže uvedený výsledek:

co je f5 na klávesnici
SQL COUNT DISTINCT

Co je DISTINCT v SQL?

Klíčové slovo DISTINCT zobrazuje ve výsledku jedinečné řádky sloupce z tabulky.

Syntaxe klíčového slova DISTINCT je uvedena zde:

 SELECT DISTINCT Name_of_Column FROM Table_Name WHERE [condition]; 

V dotazu DISTINCT můžeme také definovat podmínku v klauzuli WHERE pro načtení konkrétních hodnot.

Příklad DISTINCT

Nejprve vytvořte novou tabulku, na které se má spustit klíčové slovo Distinct.

přípona souboru java

Následující dotaz vytvoří Bike_Details tabulky pomocí příkazu CREATE TABLE:

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

Následující SQL dotazy vloží záznam nových kol do tabulky pomocí příkazu INSERT INTO:

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

Záznamy výše uvedené tabulky jsou zobrazeny pomocí následujícího dotazu SELECT:

 SELECT * FROM Bike_Details; 

Bike_Name Bike_Model Bike_Color Cena_kolo
KTM DUKE 2019 Černá 185 000
Royal Enfield 2020 Černá 165 000
lis 2018 Červené 90 000
Apache 2020 Bílý 85 000
Žít 2018 Černá 80 000
KTM RC 2020 Červené 195 000

Stůl: Bike_Details

Následující SQL dotaz na odlišné hodnoty sloupce Barva z výše uvedeného Bike_Details stůl:

 SELECT DISTINCT Bike_Color FROM Bikes ; 

Výstup:

SQL COUNT DISTINCT

Jak vidíme, černá, červená a bílá jsou tři odlišné hodnoty ve sloupci Bike_Color.

Funkce počítání s klíčovým slovem DISTINCT

Klíčové slovo DISTINCT s funkcí COUNT v dotazu SELECT zobrazí počet jedinečných dat pole z tabulky.

Syntaxe funkce Count s klíčovým slovem DISTINCT je uvedena níže:

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

Příklady funkce Count s klíčovým slovem DISTINCT

Následující dva příklady SQL vysvětlí provádění funkce Count s klíčovým slovem Distinct:

Příklad 1:

Následující dotaz vytvoří tabulku College_Students se čtyřmi poli:

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

Následující dotaz INSERT vloží záznam studentů do tabulky 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); 

Následující dotaz zobrazuje podrobnosti tabulky College_Students:

 SELECT * FROM College_Students; 

Student_Id Jméno studenta Student_Věk 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

Tabulka: College_Students

Následující příkaz SQL počítá jedinečné hodnoty sloupce Student_Age z tabulky College_Students:

 SELECT COUNT (DISTINCT (Student_Age) AS Unique_Age FROM College_Students ; 

Tento dotaz poskytne ve výstupu níže uvedenou tabulku:

SQL COUNT DISTINCT

Výstup zobrazuje čtyři hodnoty, protože sloupec Teacher_age obsahuje 4 jedinečné hodnoty.

Příklad 2:

Následující dotaz vytvoří tabulku IT_Employee se čtyřmi poli:

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

Následující dotaz INSERT vloží záznam zaměstnanců IT do tabulky 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); 

Následující dotaz zobrazuje podrobnosti o tabulce IT_Employee:

 SELECT * FROM IT_Employee; 

Employee_Id Jméno zaměstnance Věk_zaměstnance Zaměstnanec_Plat
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

Tabulka: IT_Employee

Následující příkaz SQL počítá pouze jedinečné hodnoty sloupce Emp_Age z výše uvedené tabulky IT_Employee:

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

Tento dotaz poskytne níže uvedený výstup:

SQL COUNT DISTINCT