Predtým, ako pochopíme koncept funkcie Count s kľúčovým slovom DISTINCT, musíme vedieť o kľúčových slovách Count a Distinct. Začnime teda funkciou Count.
Čo je Count v SQL?
COUNT je funkcia v jazyku Structured Query Language, ktorá zobrazuje počet záznamov z tabuľky vo výsledku. V SQL sa vždy používa v dotaze SELECT.
Syntax funkcie Count je uvedená nižšie:
SELECT COUNT(Name_of_Column) FROM Name_of_Table;
V príklade počtu musíme definovať názov stĺpca v zátvorkách hneď za kľúčovým slovom COUNT.
Príklad funkcie počítania
Najprv musíme vytvoriť novú tabuľku, na ktorej sa má vykonať funkcia počítania.
Nasledujúci dotaz vytvorí Teacher_Details stôl s Učiteľ_ID ako primárny kľúč pomocou príkazu CREATE TABLE:
do a while v jave
CREATE TABLE Teacher_Details ( Teacher_ID INT NOT NULL, Teacher_Name varchar(100), Teacher_Qualification varchar(50), Teacher_Age INT, Teacher_Interview_Marks INT );
Nasledujúce SQL dotazy vložia záznam nových učiteľov do vyššie uvedenej tabuľky pomocou príkazu INSERT INTO:
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);
Pozrime sa na záznam vyššie uvedenej tabuľky pomocou nasledujúceho príkazu SELECT:
SELECT * FROM Teacher_Details;
Učiteľ_ID | Meno učiteľa | Kvalifikácia učiteľa | Učiteľ_Vek | Učiteľ_rozhovor_Marks |
---|---|---|---|---|
101 | Anuj | B.tech | dvadsať | 88 |
102 | Raman | MCA | 24 | NULOVÝ |
104 | Shyam | BBA | 19 | 92 |
107 | Vikash | B.tech | dvadsať | NULOVÝ |
111 | Monu | MBA | dvadsaťjeden | NULOVÝ |
114 | Jones | B.tech | 18 | 93 |
121 | Vlasy | BCA | dvadsať | 97 |
123 | Divya | B.tech | dvadsaťjeden | NULOVÝ |
128 | Hemant | MBA | 23 | 90 |
130 | Nidhi | BBA | dvadsať | 88 |
132 | Priya | MBA | 22 | NULOVÝ |
138 | Mohit | MCA | dvadsaťjeden | 92 |
Nasledujúci dotaz počíta celkové hodnoty stĺpca Teacher_Age z tabuľky Teacher_Details:
SELECT COUNT (Teacher_Age) AS Total_Teachers_Age_Column FROM Teacher_Details;
Výkon:
Výstup vyššie uvedeného dotazu SELECT je dvanásť, pretože Učiteľ_Vek pole neobsahuje žiadnu hodnotu NULL.
Nasledujúci dotaz počíta celkové hodnoty stĺpca Teacher_Interview_Column z tabuľky vyššie:
SELECT COUNT (Teacher_Interview_Marks) AS Total_Teachers_Interview_Marks FROM Teacher_Details;
Tento dotaz zobrazí na obrazovke nasledujúci výstup:
Výstup vyššie uvedeného dotazu SELECT je 7, pretože dve päť buniek stĺpca Teacher_Interview_Marks obsahuje NULL. A týchto päť hodnôt NULL je vylúčených. Preto dotaz SELECT zobrazí vo výsledku 7 namiesto 12.
Čo je funkcia Count(*)?
Toto je tiež podobné funkcii Count, ale jediný rozdiel je v tom, že zobrazuje aj počet hodnôt NULL z tabuľky.
Syntax funkcie Count (*) je uvedená tu:
SELECT COUNT(*) FROM Name_of_Table;
Príklad:
Zoberme si vyššie uvedené podrobnosti o učiteľovi:
Učiteľ_ID | Meno učiteľa | Kvalifikácia učiteľa | Učiteľ_Vek | Učiteľ_rozhovor_Marks |
---|---|---|---|---|
101 | Anuj | B.tech | dvadsať | 88 |
102 | Raman | MCA | 24 | NULOVÝ |
104 | Shyam | BBA | 19 | 92 |
107 | Vikash | B.tech | dvadsať | NULOVÝ |
111 | Monu | MBA | dvadsaťjeden | NULOVÝ |
114 | Jones | B.tech | 18 | 93 |
121 | Vlasy | BCA | dvadsať | 97 |
123 | Divya | B.tech | dvadsaťjeden | NULOVÝ |
128 | Hemant | MBA | 23 | 90 |
130 | Nidhi | BBA | dvadsať | 88 |
132 | Priya | MBA | 22 | NULOVÝ |
138 | Mohit | MCA | dvadsaťjeden | 92 |
Nasledujúci dotaz počíta celkové hodnoty Total_Interview_Marks stĺpec z vyššie uvedenej tabuľky:
SELECT COUNT (*) FROM Teacher_Details;
Vyššie uvedený dotaz SELECT s COUNT(*) poskytne na obrazovke nasledujúci výsledok:
Čo je DISTINCT v SQL?
Kľúčové slovo DISTINCT zobrazuje vo výsledku jedinečné riadky stĺpca z tabuľky.
Syntax kľúčového slova DISTINCT je uvedená tu:
SELECT DISTINCT Name_of_Column FROM Table_Name WHERE [condition];
V dotaze DISTINCT môžeme definovať aj podmienku v klauzule WHERE pre získanie konkrétnych hodnôt.
Príklad DISTINCT
Najprv vytvorte novú tabuľku, na ktorej sa má spustiť kľúčové slovo Distinct.
Nasledujúci dotaz vytvorí Bike_Details tabuľku pomocou príkazu CREATE TABLE:
CREATE TABLE Bike_Details ( Bike_Name varchar(100), Bike_Model INT, Bike_Color varchar(50), Bike_Cost INT );
Nasledujúce SQL dotazy vložia záznam o nových bicykloch do tabuľky pomocou prí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 z vyššie uvedenej tabuľky sú zobrazené pomocou nasledujúceho SELECT dotazu:
SELECT * FROM Bike_Details;
Bike_Name | Bike_Model | Farba_bicykla | Bike_Cost |
---|---|---|---|
KTM DUKE | 2019 | čierna | 185 000 |
Kráľovský Enfield | 2020 | čierna | 165 000 |
Stlačte tlačidlo | 2018 | Červená | 90 000 |
Apache | 2020 | biely | 85 000 |
Naživo | 2018 | čierna | 80 000 |
KTM RC | 2020 | Červená | 195 000 |
Tabuľka: Bike_Details
Nasledujúci SQL dopytuje odlišné hodnoty stĺpca Farba od vyššie uvedeného Bike_Details tabuľka:
SELECT DISTINCT Bike_Color FROM Bikes ;
Výkon:
Ako vidíme, čierna, červená a biela sú tri odlišné hodnoty v stĺpci Bike_Color.
Funkcia počítania s kľúčovým slovom DISTINCT
Kľúčové slovo DISTINCT s funkciou COUNT v dotaze SELECT zobrazuje počet jedinečných údajov poľa z tabuľky.
Syntax funkcie Count s kľúčovým slovom DISTINCT je uvedená nižšie:
SELECT COUNT(DISTINCT (Column_Name) FROM table_name WHERE [condition];
Príklady funkcie Count s kľúčovým slovom DISTINCT
Nasledujúce dva príklady SQL vysvetlia vykonávanie funkcie Count s kľúčovým slovom Distinct:
Príklad 1:
Nasledujúci dotaz vytvorí tabuľku College_Students so štyrmi poliami:
CREATE TABLE College_Students ( Student_Id INT NOT NULL, Student_Name Varchar (40), Student_Age INT, Student_Marks INT );
Nasledujúci dotaz INSERT vloží záznam študentov do tabuľky 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);
Nasledujúci dotaz zobrazuje podrobnosti tabuľky College_Students:
SELECT * FROM College_Students;
Študentská karta | Meno študenta | Student_Vek | Študent_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 |
Tabuľka: College_Students
Nasledujúci príkaz SQL počíta jedinečné hodnoty stĺpca Student_Age z tabuľky College_Students:
SELECT COUNT (DISTINCT (Student_Age) AS Unique_Age FROM College_Students ;
Tento dotaz poskytne na výstupe nasledujúcu tabuľku:
Výstup zobrazuje štyri hodnoty, pretože stĺpec Teacher_age obsahuje 4 jedinečné hodnoty.
Príklad 2:
Nasledujúci dotaz vytvorí tabuľku IT_Employee so štyrmi poliami:
CREATE TABLE IT_Employee ( Employee_Id INT NOT NULL, Employee_Name Varchar (40), Emp_Age INT, Employee_Salary INT );
Nasledujúci dotaz INSERT vloží záznam zamestnancov IT do tabuľky 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);
Nasledujúci dotaz zobrazuje podrobnosti tabuľky IT_Employee:
SELECT * FROM IT_Employee;
Identifikačné číslo zamestnanca | Meno zamestnanca | Zamestnanec_Vek | Zamestnanec_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 |
Tabuľka: IT_Employee
Nasledujúci príkaz SQL počíta iba jedinečné hodnoty stĺpca Emp_Age z vyššie uvedenej tabuľky IT_Employee:
SELECT COUNT (DISTINCT (Employee_Age)) AS Unique_Age FROM IT_Employee ;
Tento dotaz poskytne nasledujúci výstup: