Перш ніж зрозуміти концепцію функції підрахунку з ключовим словом 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;
Вихід:
Результатом наведеного вище запиту 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(*)?
Це також схоже на функцію підрахунку, але єдина відмінність полягає в тому, що вона також відображає кількість значень 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(*) дасть на екрані такий результат:
Що таке 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 ;
Вихід:
Як ми бачимо, 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 ;
Цей запит видасть наведену нижче таблицю у вихідних даних:
Вихідні дані показують чотири значення, оскільки стовпець 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 ;
Цей запит дасть такі результати: