logo

SQL COUNT DISTINCT

Перш ніж зрозуміти концепцію функції підрахунку з ключовим словом DISTINCT, ми повинні знати про ключові слова Count і Distinct. Отже, почнемо з функції Count.

Що таке Count у SQL?

COUNT — це функція в мові структурованих запитів, яка показує кількість записів із таблиці в результаті. У SQL він завжди використовується в запиті SELECT.

як сортувати список масивів у java

Синтаксис функції Count наведено нижче:

 SELECT COUNT(Name_of_Column) FROM Name_of_Table; 

У прикладі count ми маємо визначити ім’я стовпця в дужках одразу після ключового слова COUNT.

Приклад функції підрахунку

По-перше, ми повинні створити нову таблицю, на якій буде виконуватися функція підрахунку.

Наступний запит створює Teacher_Details стіл с ID_вчителя як первинний ключ за допомогою оператора 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; 

ID_вчителя Ім'я_вчителя Кваліфікація_вчителя Вік_вчителя Викладач_Інтерв'ю_Оцінки
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 COUNT DISTINCT

Результатом наведеного вище запиту SELECT є дванадцять, оскільки Вік_вчителя поле не містить значення NULL.

Наступний запит підраховує загальні значення стовпця Teacher_Interview_Column із наведеної вище таблиці:

 SELECT COUNT (Teacher_Interview_Marks) AS Total_Teachers_Interview_Marks FROM Teacher_Details; 

Цей запит покаже на екрані такі результати:

SQL COUNT DISTINCT

Вихід наведеного вище запиту SELECT дорівнює 7, оскільки дві п’ять клітинок стовпця Teacher_Interview_Marks містять NULL. І ці п’ять значень NULL виключаються. Ось чому запит SELECT відображає 7 замість 12 у результаті.

Що таке функція Count(*)?

Це також схоже на функцію підрахунку, але єдина відмінність полягає в тому, що вона також відображає кількість значень NULL із таблиці.

Синтаксис функції підрахунку (*) наведено тут:

 SELECT COUNT(*) FROM Name_of_Table; 

приклад:

Давайте візьмемо наведені вище Teacher_Details:

ID_вчителя Ім'я_вчителя Кваліфікація_вчителя Вік_вчителя Викладач_Інтерв'ю_Оцінки
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

Наступний запит підраховує загальні значення Total_Interview_Marks стовпець із наведеної вище таблиці:

 SELECT COUNT (*) FROM Teacher_Details; 

Наведений вище запит SELECT із COUNT(*) дасть на екрані такий результат:

SQL COUNT DISTINCT

Що таке 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 Вартість_велосипеда
KTM DUKE 2019 рік чорний 185000
Роял Енфілд 2020 рік чорний 165000
Прес 2018 рік Червоний 90000
Apache 2020 рік Білий 85 000
Livo 2018 рік чорний 80 000
KTM RC 2020 рік Червоний 195 000

Таблиця: Bike_Details

Наступний SQL-запит виконує різні значення стовпця Color із наведеного вище Bike_Details стіл:

 SELECT DISTINCT Bike_Color FROM Bikes ; 

Вихід:

SQL COUNT DISTINCT

Як ми бачимо, Black, Red і White є трьома різними значеннями в стовпці Bike_Color.

Функція підрахунку з ключовим словом DISTINCT

Ключове слово DISTINCT із функцією COUNT у запиті SELECT відображає кількість унікальних даних поля з таблиці.

Синтаксис функції підрахунку з ключовим словом DISTINCT наведено нижче:

 SELECT COUNT(DISTINCT (Column_Name) FROM table_name WHERE [condition]; 

Приклади функції підрахунку з ключовим словом DISTINCT

Наступні два приклади SQL пояснюють виконання функції Count із ключовим словом Distinct:

приклад 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

Таблиця: College_Students

скільки там фільмів місія неможлива

Наступний оператор SQL підраховує унікальні значення стовпця Student_Age з таблиці College_Students:

 SELECT COUNT (DISTINCT (Student_Age) AS Unique_Age FROM College_Students ; 

Цей запит видасть наведену нижче таблицю у вихідних даних:

SQL COUNT DISTINCT

Вихідні дані показують чотири значення, оскільки стовпець 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 25000
102 Абхай 27 26000
103 Соря 26 29000
104 Абхішек 27 26000
105 Рітік 26 29000
106 Яш 29 25000

Таблиця: IT_Employee

Наступний оператор SQL підраховує лише унікальні значення стовпця Emp_Age із наведеної вище таблиці IT_Employee:

 SELECT COUNT (DISTINCT (Employee_Age)) AS Unique_Age FROM IT_Employee ; 

Цей запит дасть такі результати:

SQL COUNT DISTINCT