Înainte de a înțelege conceptul de Count Function cu cuvântul cheie DISTINCT, trebuie să știm despre cuvintele cheie Count și Distinct. Deci, să începem cu funcția Count.
Ce este Count în SQL?
COUNT este o funcție în Structured Query Language care arată numărul de înregistrări din tabel în rezultat. În SQL, este întotdeauna folosit în interogarea SELECT.
Sintaxa funcției Count este dată mai jos:
SELECT COUNT(Name_of_Column) FROM Name_of_Table;
În exemplul de numărare, trebuie să definim numele coloanei în paranteze imediat după cuvântul cheie COUNT.
Exemplu de funcție de numărare
În primul rând, trebuie să creăm un nou tabel pe care să fie executată funcția de numărare.
Următoarea interogare creează Detalii_Profesor masa cu ID_profesor ca cheie primară folosind instrucțiunea 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 );
Următoarele interogări SQL inserează înregistrarea noilor profesori în tabelul de mai sus utilizând instrucțiunea 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);
Să vedem înregistrarea tabelului de mai sus folosind următoarea instrucțiune SELECT:
SELECT * FROM Teacher_Details;
ID_profesor | Numele profesorului | Calificarea_Profesor | Vârsta_Profesor | Profesor_Interviu_Marci |
---|---|---|---|---|
101 | Anuj | B.tech | douăzeci | 88 |
102 | Raman | MCA | 24 | NUL |
104 | Shyam | BBA | 19 | 92 |
107 | Vikash | B.tech | douăzeci | NUL |
111 | Monu | MBA | douăzeci și unu | NUL |
114 | Jones | B.tech | 18 | 93 |
121 | Parul | BCA | douăzeci | 97 |
123 | Divya | B.tech | douăzeci și unu | NUL |
128 | Hemant | MBA | 23 | 90 |
130 | Nidhi | BBA | douăzeci | 88 |
132 | Priya | MBA | 22 | NUL |
138 | Mohit | MCA | douăzeci și unu | 92 |
Următoarea interogare numără valorile totale ale coloanei Teacher_Age din tabelul Teacher_Details:
SELECT COUNT (Teacher_Age) AS Total_Teachers_Age_Column FROM Teacher_Details;
Ieșire:
Ieșirea interogării SELECT de mai sus este de douăsprezece deoarece Vârsta_Profesor câmpul nu conține nicio valoare NULL.
Următoarea interogare numără valorile totale ale Teacher_Interview_Column din tabelul de mai sus:
SELECT COUNT (Teacher_Interview_Marks) AS Total_Teachers_Interview_Marks FROM Teacher_Details;
Această interogare va afișa rezultatul de mai jos pe ecran:
Rezultatul interogării SELECT de mai sus este 7 deoarece două cinci celule din coloana Teacher_Interview_Marks conțin NULL. Și aceste cinci valori NULL sunt excluse. De aceea, interogarea SELECT afișează 7 în loc de 12 în rezultat.
Ce este funcția Count(*)?
Aceasta este, de asemenea, similară cu funcția Count, dar singura diferență este că afișează și numărul de valori NULL din tabel.
Sintaxa funcției Count (*) este dată aici:
SELECT COUNT(*) FROM Name_of_Table;
Exemplu:
Să luăm cele de mai sus Teacher_Details:
ID_profesor | Numele profesorului | Calificarea_Profesor | Vârsta_Profesor | Profesor_Interviu_Marci |
---|---|---|---|---|
101 | Anuj | B.tech | douăzeci | 88 |
102 | Raman | MCA | 24 | NUL |
104 | Shyam | BBA | 19 | 92 |
107 | Vikash | B.tech | douăzeci | NUL |
111 | Monu | MBA | douăzeci și unu | NUL |
114 | Jones | B.tech | 18 | 93 |
121 | Parul | BCA | douăzeci | 97 |
123 | Divya | B.tech | douăzeci și unu | NUL |
128 | Hemant | MBA | 23 | 90 |
130 | Nidhi | BBA | douăzeci | 88 |
132 | Priya | MBA | 22 | NUL |
138 | Mohit | MCA | douăzeci și unu | 92 |
Următoarea interogare numără valorile totale ale Total_Marke_Interviu coloana din tabelul de mai sus:
SELECT COUNT (*) FROM Teacher_Details;
Interogarea de mai sus SELECT cu COUNT(*) va oferi rezultatul de mai jos pe ecran:
Ce este DISTINCT în SQL?
Cuvântul cheie DISTINCT arată rândurile unice ale coloanei din tabel din rezultat.
Sintaxa cuvântului cheie DISTINCT este dată aici:
SELECT DISTINCT Name_of_Column FROM Table_Name WHERE [condition];
În interogarea DISTINCT, putem defini și condiția din clauza WHERE pentru preluarea valorilor specifice.
Exemplu de DISTINCT
Mai întâi, creați un tabel nou pe care să fie rulat cuvântul cheie Distinct.
Următoarea interogare creează Bicicletă_Detalii tabel folosind instrucțiunea CREATE TABLE:
CREATE TABLE Bike_Details ( Bike_Name varchar(100), Bike_Model INT, Bike_Color varchar(50), Bike_Cost INT );
Următoarele interogări SQL inserează înregistrarea bicicletelor noi în tabel utilizând instrucțiunea 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);
Înregistrările din tabelul de mai sus sunt afișate utilizând următoarea interogare SELECT:
SELECT * FROM Bike_Details;
Bike_Name | Bike_Model | Bike_Color | Bike_Cost |
---|---|---|---|
KTM DUKE | 2019 | Negru | 185000 |
Royal Enfield | 2020 | Negru | 165000 |
presa | 2018 | roșu | 90000 |
Apache | 2020 | alb | 85.000 |
Trăi | 2018 | Negru | 80.000 |
KTM RC | 2020 | roșu | 195.000 |
Masa: Bicicletă_Detalii
Următorul SQL interogă valorile distincte ale coloanei Culoare față de cele de mai sus Bicicletă_Detalii masa:
SELECT DISTINCT Bike_Color FROM Bikes ;
Ieșire:
După cum putem vedea, Black, Red și White sunt trei valori distincte în coloana Bike_Color.
Funcția de numărare cu cuvânt cheie DISTINCT
Cuvântul cheie DISTINCT cu funcția COUNT în interogarea SELECT afișează numărul de date unice ale câmpului din tabel.
Sintaxa funcției de numărare cu cuvântul cheie DISTINCT este prezentată mai jos:
SELECT COUNT(DISTINCT (Column_Name) FROM table_name WHERE [condition];
Exemple de funcție de numărare cu cuvânt cheie DISTINCT
Următoarele două exemple SQL vor explica execuția funcției Count cu cuvântul cheie Distinct:
Exemplul 1:
Următoarea interogare creează tabelul College_Students cu patru câmpuri:
CREATE TABLE College_Students ( Student_Id INT NOT NULL, Student_Name Varchar (40), Student_Age INT, Student_Marks INT );
Următoarea interogare INSERT inserează înregistrarea studenților în tabelul 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);
Următoarea interogare arată detaliile tabelului College_Students:
SELECT * FROM College_Students;
Carnet de student | Numele studentului | Student_Vârsta | 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 |
Tabel: Facultate_Studenți
Următoarea instrucțiune SQL numără valorile unice ale coloanei Student_Age din tabelul College_Students:
Freddie Mercury născut
SELECT COUNT (DISTINCT (Student_Age) AS Unique_Age FROM College_Students ;
Această interogare va oferi tabelul de mai jos în rezultat:
Rezultatul arată cele patru valori deoarece coloana Teacher_age conține 4 valori unice.
Exemplul 2:
Următoarea interogare creează tabelul IT_Employee cu patru câmpuri:
CREATE TABLE IT_Employee ( Employee_Id INT NOT NULL, Employee_Name Varchar (40), Emp_Age INT, Employee_Salary INT );
Următoarea interogare INSERT inserează înregistrarea angajaților IT în tabelul 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);
Următoarea interogare arată detaliile tabelului IT_Employee:
SELECT * FROM IT_Employee;
Card de identitate al angajatului | Numele angajatului | Vârsta_angajată | Salariu_Angajat |
---|---|---|---|
101 | Akhil | 28 | 25000 |
102 | Abhay | 27 | 26000 |
103 | Sorya | 26 | 29000 |
104 | Abhishek | 27 | 26000 |
105 | Hrithik | 26 | 29000 |
106 | Yash | 29 | 25000 |
Tabel: IT_Angajat
Următoarea instrucțiune SQL numără numai valorile unice ale coloanei Emp_Age din tabelul IT_Employee de mai sus:
SELECT COUNT (DISTINCT (Employee_Age)) AS Unique_Age FROM IT_Employee ;
Această interogare va da rezultatul de mai jos: