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