Преди да разберем концепцията на функцията Count с ключовата дума DISTINCT, трябва да знаем за ключовите думи Count и Distinct. И така, нека започнем с функцията Count.
Какво е Count в SQL?
COUNT е функция в Structured Query Language, която показва броя на записите от таблицата в резултата. В SQL винаги се използва в заявката SELECT.
Синтаксисът на функцията Count е даден по-долу:
SELECT COUNT(Name_of_Column) FROM Name_of_Table;
В примера с броя трябва да дефинираме името на колоната в скоби точно след ключовата дума COUNT.
Пример за функция за броене
Първо, трябва да създадем нова таблица, върху която да се изпълни функцията count.
Следната заявка създава Teacher_Details маса с ИД на учител като първичен ключ с помощта на оператора 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 );
Следните SQL заявки вмъкват записа на новите учители в горната таблица с помощта на оператор 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);
Нека видим записа на горната таблица, използвайки следния оператор SELECT:
SELECT * FROM Teacher_Details;
ИД на учител | Име_на_учител | Учител_Квалификация | Възраст на учителя | Оценки за_интервю на учителя |
---|---|---|---|---|
101 | Анудж | B.tech | двадесет | 88 |
102 | Раман | MCA | 24 | НУЛА |
104 | Шям | BBA | 19 | 92 |
107 | Викаш | B.tech | двадесет | НУЛА |
111 | Мону | MBA | двадесет и едно | НУЛА |
114 | Джоунс | B.tech | 18 | 93 |
121 | Косата | BCA | двадесет | 97 |
123 | Дивия | B.tech | двадесет и едно | НУЛА |
128 | Хемант | MBA | 23 | 90 |
130 | Нидхи | BBA | двадесет | 88 |
132 | Прия | MBA | 22 | НУЛА |
138 | Мохит | MCA | двадесет и едно | 92 |
Следната заявка отчита общите стойности на колоната Teacher_Age от таблицата Teacher_Details:
SELECT COUNT (Teacher_Age) AS Total_Teachers_Age_Column FROM Teacher_Details;
Изход:
Резултатът от горната заявка SELECT е дванадесет, защото Възраст_на учителя полето не съдържа NULL стойност.
Следната заявка отчита общите стойности на Teacher_Interview_Column от горната таблица:
SELECT COUNT (Teacher_Interview_Marks) AS Total_Teachers_Interview_Marks FROM Teacher_Details;
Тази заявка ще покаже следния резултат на екрана:
Резултатът от горната заявка SELECT е 7, защото две пет клетки от колоната Teacher_Interview_Marks съдържат NULL. И тези пет NULL стойности са изключени. Ето защо заявката SELECT показва 7 вместо 12 в резултата.
Какво представлява функцията Count(*)?
Това също е подобно на функцията Count, но единствената разлика е, че показва и броя на NULL стойностите от таблицата.
Синтаксисът на функцията Count (*) е даден тук:
SELECT COUNT(*) FROM Name_of_Table;
Пример:
charat java
Нека вземем горните Teacher_Details:
ИД на учител | Име_на_учител | Учител_Квалификация | Възраст на учителя | Оценки за_интервю на учителя |
---|---|---|---|---|
101 | Анудж | B.tech | двадесет | 88 |
102 | Раман | MCA | 24 | НУЛА |
104 | Шям | BBA | 19 | 92 |
107 | Викаш | B.tech | двадесет | НУЛА |
111 | Мону | MBA | двадесет и едно | НУЛА |
114 | Джоунс | B.tech | 18 | 93 |
121 | Косата | BCA | двадесет | 97 |
123 | Дивия | B.tech | двадесет и едно | НУЛА |
128 | Хемант | MBA | 23 | 90 |
130 | Нидхи | BBA | двадесет | 88 |
132 | Прия | MBA | 22 | НУЛА |
138 | Мохит | MCA | двадесет и едно | 92 |
Следната заявка отчита общите стойности на Общо_оценки за_интервю колона от горната таблица:
SELECT COUNT (*) FROM Teacher_Details;
Горната заявка SELECT с COUNT(*) ще даде следния резултат на екрана:
Какво е DISTINCT в SQL?
Ключовата дума DISTINCT показва уникалните редове на колоната от таблицата в резултата.
Синтаксисът на ключовата дума DISTINCT е даден тук:
SELECT DISTINCT Name_of_Column FROM Table_Name WHERE [condition];
В заявката DISTINCT можем също да дефинираме условието в клаузата WHERE за извличане на специфичните стойности.
Пример за DISTINCT
Първо създайте нова таблица, на която да се изпълнява ключовата дума Distinct.
Следната заявка създава Bike_Details таблица с помощта на израза CREATE TABLE:
CREATE TABLE Bike_Details ( Bike_Name varchar(100), Bike_Model INT, Bike_Color varchar(50), Bike_Cost INT );
Следните SQL заявки вмъкват записа на нови велосипеди в таблицата с помощта на израза 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);
Записите от горната таблица се показват чрез използване на следната заявка SELECT:
SELECT * FROM Bike_Details;
Bike_Name | Модел_велосипед | Bike_Color | Bike_Cost |
---|---|---|---|
KTM DUKE | 2019 г | черен | 185 000 |
Роял Енфийлд | 2020 г | черен | 165 000 |
Натиснете | 2018 г | червен | 90 000 |
Apache | 2020 г | Бяло | 85 000 |
На живо | 2018 г | черен | 80 000 |
KTM RC | 2020 г | червен | 195 000 |
Таблица: Bike_Details
Следната SQL заявка за различните стойности на колоната Цвят от горната Bike_Details маса:
SELECT DISTINCT Bike_Color FROM Bikes ;
Изход:
Както виждаме, черно, червено и бяло са три отделни стойности в колоната Bike_Color.
Функция за преброяване с ключова дума DISTINCT
Ключовата дума DISTINCT с функцията COUNT в заявката SELECT показва броя на уникалните данни на полето от таблицата.
Синтаксисът на функцията за броене с ключова дума DISTINCT е даден по-долу:
SELECT COUNT(DISTINCT (Column_Name) FROM table_name WHERE [condition];
Примери за функция Count с ключова дума DISTINCT
Следващите два SQL примера ще обяснят изпълнението на функцията Count с ключова дума Distinct:
java четене на csv
Пример 1:
Следната заявка създава таблицата College_Students с четири полета:
CREATE TABLE College_Students ( Student_Id INT NOT NULL, Student_Name Varchar (40), Student_Age INT, Student_Marks INT );
Следната заявка INSERT вмъква записа на студентите в таблицата 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);
Следната заявка показва подробностите за таблицата College_Students:
SELECT * FROM College_Students;
Student_Id | Име_на_ученик | Студентска_възраст | Студентски_оценки |
---|---|---|---|
101 | Ахил | 28 | 95 |
102 | Абхай | 27 | 86 |
103 | Соря | 26 | 79 |
104 | Абхишек | 27 | 66 |
105 | Ритик | 26 | 79 |
106 | Яш | 29 | 88 |
Таблица: Колеж_Студенти
Следният SQL израз отчита уникалните стойности на колоната Student_Age от таблицата College_Students:
SELECT COUNT (DISTINCT (Student_Age) AS Unique_Age FROM College_Students ;
Тази заявка ще даде таблицата по-долу в изхода:
Резултатът показва четирите стойности, тъй като колоната Teacher_age съдържа 4 уникални стойности.
Пример 2:
Следната заявка създава таблицата IT_Employee с четири полета:
CREATE TABLE IT_Employee ( Employee_Id INT NOT NULL, Employee_Name Varchar (40), Emp_Age INT, Employee_Salary INT );
Следната заявка INSERT вмъква записа на ИТ служители в таблицата 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);
Следната заявка показва подробностите за таблицата IT_Employee:
SELECT * FROM IT_Employee;
Employee_Id | Име на служителя | Employee_Age | Служител_Заплата |
---|---|---|---|
101 | Ахил | 28 | 25 000 |
102 | Абхай | 27 | 26000 |
103 | Соря | 26 | 29 000 |
104 | Абхишек | 27 | 26000 |
105 | Ритик | 26 | 29 000 |
106 | Яш | 29 | 25 000 |
Таблица: IT_Employee
Следният SQL израз отчита само уникалните стойности на колоната Emp_Age от горната таблица IT_Employee:
SELECT COUNT (DISTINCT (Employee_Age)) AS Unique_Age FROM IT_Employee ;
Тази заявка ще даде следния резултат: