قبل أن نفهم مفهوم وظيفة العد مع الكلمة الأساسية DISTINCT، علينا أن نتعرف على الكلمات الأساسية Count وDistinct. لذلك، دعونا نبدأ مع وظيفة العد.
ما هو العد في SQL؟
COUNT هي وظيفة في لغة الاستعلام الهيكلية تعرض عدد السجلات من الجدول في النتيجة. في SQL، يتم استخدامه دائمًا في استعلام SELECT.
بناء جملة الدالة Count موضح أدناه:
SELECT COUNT(Name_of_Column) FROM Name_of_Table;
في مثال العدد، يتعين علينا تحديد اسم العمود بين قوسين بعد الكلمة الأساسية COUNT مباشرة.
مثال على وظيفة العد
أولاً، علينا إنشاء جدول جديد سيتم تنفيذ دالة العد عليه.
الثلج مقابل الجليد
يقوم الاستعلام التالي بإنشاء تفاصيل_المعلم طاولة مع معرف_المعلم كمفتاح أساسي باستخدام عبارة 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 | أنوج | بي تك | عشرين | 88 |
102 | رامان | مولودية الجزائر | 24 | باطل |
104 | شيام | بابا | 19 | 92 |
107 | فيكاش | بي تك | عشرين | باطل |
111 | مونو | ماجستير في إدارة الأعمال | واحد وعشرين | باطل |
114 | جونز | بي تك | 18 | 93 |
121 | الشعر | اتفاق التعاون الأساسي | عشرين | 97 |
123 | ديفيا | بي تك | واحد وعشرين | باطل |
128 | هيمانت | ماجستير في إدارة الأعمال | 23 | 90 |
130 | نيدي | بابا | عشرين | 88 |
132 | بريا | ماجستير في إدارة الأعمال | 22 | باطل |
138 | موهيت | مولودية الجزائر | واحد وعشرين | 92 |
يقوم الاستعلام التالي بحساب إجمالي قيم عمود Teacher_Age من جدول Teacher_Details:
SELECT COUNT (Teacher_Age) AS Total_Teachers_Age_Column FROM Teacher_Details;
انتاج:
إخراج استعلام SELECT أعلاه هو اثني عشر لأن عمر المعلم لا يحتوي الحقل على أي قيمة فارغة.
يقوم الاستعلام التالي بحساب إجمالي قيم Teacher_Interview_Column من الجدول أعلاه:
SELECT COUNT (Teacher_Interview_Marks) AS Total_Teachers_Interview_Marks FROM Teacher_Details;
سيظهر هذا الاستعلام الإخراج أدناه على الشاشة:
إخراج استعلام SELECT أعلاه هو 7 لأن الخليتين الخمستين في عمود Teacher_Interview_Marks تحتويان على NULL. ويتم استبعاد هذه القيم الخمس الخالية. ولهذا السبب يعرض استعلام SELECT 7 بدلاً من 12 في النتيجة.
طريقة التبديل جافا
ما هي وظيفة العد (*)؟
يشبه هذا أيضًا الدالة Count، لكن الاختلاف الوحيد هو أنها تعرض أيضًا عدد القيم NULL من الجدول.
يتم تقديم صيغة الدالة Count (*) هنا:
SELECT COUNT(*) FROM Name_of_Table;
مثال:
لنأخذ تفاصيل Teacher_Details أعلاه:
معرف_المعلم | اسم_المعلم | مؤهل_المعلم | عمر المعلم | علامات_مقابلة_المعلم |
---|---|---|---|---|
101 | أنوج | بي تك | عشرين | 88 |
102 | رامان | مولودية الجزائر | 24 | باطل |
104 | شيام | بابا | 19 | 92 |
107 | فيكاش | بي تك | عشرين | باطل |
111 | مونو | ماجستير في إدارة الأعمال | واحد وعشرين | باطل |
114 | جونز | بي تك | 18 | 93 |
121 | الشعر | اتفاق التعاون الأساسي | عشرين | 97 |
123 | ديفيا | بي تك | واحد وعشرين | باطل |
128 | هيمانت | ماجستير في إدارة الأعمال | 23 | 90 |
130 | نيدي | بابا | عشرين | 88 |
132 | بريا | ماجستير في إدارة الأعمال | 22 | باطل |
138 | موهيت | مولودية الجزائر | واحد وعشرين | 92 |
يقوم الاستعلام التالي بحساب إجمالي قيم إجمالي_علامات_المقابلات عمود من الجدول أعلاه:
SELECT COUNT (*) FROM Teacher_Details;
سيعطي استعلام SELECT مع COUNT(*) أعلاه النتيجة التالية على الشاشة:
ما هو DISTINCT في SQL؟
تعرض الكلمة الأساسية DISTINCT الصفوف الفريدة للعمود من الجدول في النتيجة.
يتم توفير صيغة الكلمة الأساسية DISTINCT هنا:
SELECT DISTINCT Name_of_Column FROM Table_Name WHERE [condition];
في الاستعلام DISTINCT، يمكننا أيضًا تحديد الشرط في جملة WHERE لاسترداد القيم المحددة.
مثال على التميز
أولاً، قم بإنشاء جدول جديد سيتم تشغيل الكلمة الأساسية المميزة عليه.
استدعاء وظيفة js من HTML
يقوم الاستعلام التالي بإنشاء تفاصيل الدراجة الجدول باستخدام عبارة 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_Model | لون الدراجة | تكلفة الدراجة |
---|---|---|---|
كيه تي إم ديوك | 2019 | أسود | 185000 |
رويال انفيلد | 2020 | أسود | 165000 |
يضعط | 2018 | أحمر | 90000 |
أباتشي | 2020 | أبيض | 85000 |
يعيش | 2018 | أسود | 80.000 |
كيه تي إم آر سي | 2020 | أحمر | 195,000 |
طاولة: تفاصيل الدراجة
يستعلم SQL التالي عن القيم المميزة لعمود اللون مما سبق تفاصيل الدراجة طاولة:
SELECT DISTINCT Bike_Color FROM Bikes ;
انتاج:
كما نرى، فإن الأسود والأحمر والأبيض هي ثلاث قيم مميزة في عمود Bike_Color.
وظيفة العد مع الكلمة الأساسية DISTINCT
تعرض الكلمة الأساسية DISTINCT مع الدالة COUNT في استعلام SELECT عدد البيانات الفريدة للحقل من الجدول.
يرد أدناه بناء جملة دالة العد مع الكلمة الأساسية DISTINCT:
SELECT COUNT(DISTINCT (Column_Name) FROM table_name WHERE [condition];
أمثلة على وظيفة العد مع الكلمة الأساسية DISTINCT
سيشرح مثالا SQL التاليان تنفيذ دالة Count باستخدام الكلمة الأساسية المميزة:
مثال 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_Age | Student_Marks |
---|---|---|---|
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;
هوية الموظف | اسم الموظف | عمر الموظف | راتب_الموظف |
---|---|---|---|
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 ;
سيعطي هذا الاستعلام الإخراج أدناه: