logo

SQL БРОЙ РАЗЛИЧЕН

Преди да разберем концепцията на функцията 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; 

Изход:

SQL БРОЙ РАЗЛИЧЕН

Резултатът от горната заявка SELECT е дванадесет, защото Възраст_на учителя полето не съдържа NULL стойност.

Следната заявка отчита общите стойности на Teacher_Interview_Column от горната таблица:

 SELECT COUNT (Teacher_Interview_Marks) AS Total_Teachers_Interview_Marks FROM Teacher_Details; 

Тази заявка ще покаже следния резултат на екрана:

SQL БРОЙ РАЗЛИЧЕН

Резултатът от горната заявка 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(*) ще даде следния резултат на екрана:

SQL БРОЙ РАЗЛИЧЕН

Какво е 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 ; 

Изход:

SQL БРОЙ РАЗЛИЧЕН

Както виждаме, черно, червено и бяло са три отделни стойности в колоната 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 ; 

Тази заявка ще даде таблицата по-долу в изхода:

SQL БРОЙ РАЗЛИЧЕН

Резултатът показва четирите стойности, тъй като колоната 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 ; 

Тази заявка ще даде следния резултат:

SQL БРОЙ РАЗЛИЧЕН