SQL SELECT DISTINCT Statement

-

بنتكلم في هذا الدرس عن استخدام SQL SELECT DISTINCT Statement. تستخدم كلمة Distinct لإرجاع القيم المختلفة فقط (في حال وجود قيم نفسها مكرره اكيد ما بترجع باستخدام هذه الكلمة).

طريقة الكتابة SELECT DISTINCT Syntax

SELECT DISTINCT column1, column2, ...
FROM table_name;

يتم تحدد الأعمدة المطلوب ارجاعها بحيث ما تكون مكرره. 

مثال

قاعدة البيانات northwind تحتوي على جدول باسم customers. وفي هذا الجدول كل عميل customers له دولة country مسجلة في الجدول. احتمالية التكرار بهذه الحالة واردة، اكيد ممكن يكون أكثر من عميل في نفس المكان. 

مثال لإرجاع الدول لجميع العملاء حتي لو في تكرار.

الكود:

select  country from customers

النتيجة : 


لاحظ عدد rows الراجعة تساوي 91 (الدائرة الحمراء). هذا يعني ان في هذا الجدول يوجد 91 عميل بغض النظر عن دولتهم. 

الان نشوف الداتا دون تكرار الدول باستخدام DISTINCT

الكود: 

select DISTINCT country from customers

النتيجة: 


لاحظ عدد rows يساوي 21 فقط. 


ارجاع عدد الصفوف rows باستخدام SQL statement

يمكن استخدام SQL statement لمعرفة عدد الصفوف الموجود باستخدام الامر count

الامر count بشتغل مع عمود معين. 

التركيب  count Syntax 

Select count(column Name) 
from table_name;

مثل ما حكينا يجب تحدد اسم column المطلوب معرفة اجمالي records الموجوده. 

نطبق مثال:

في المثال السابق عند ارجاع عدد customers بدون distinct كان المجموع يساوي 91 ومع distinct المجموع يساوي 21 

نطبق مثال لإرجاع هذه الاعداد عن طريق SQL statement

العدد دون استخدام distinct 

الكود:

select count( country) from customers

النتيجة: 


الكود بسيط جدا: فقط إضافة كلمة count قبل العمود المطلوب ارجاع العدد.


العدد مع استخدام distinct 

select  count( distinct country) from customers

النتيجة : 


الكود بسيط جدا: فقط إضافة كلمة count قبل العمود المطلوب ارجاع العدد. وفي هذا المثال لان المطلوب ارجاع العدد بدون تكرار، تم ارجاع الدول اولا بدون التكرار، ثم طبقنا الامر count. 


في حال تم استخدام اكثر من عمود مع distinct يتم التأكد من عدم التكرار في جميع الأعمدة. 

مثال:

select distinct  country,CompanyName from customers

النتيجة : 


لاحظ بالرغم من استخدام كلمة distinct تم ارجاع القيم المكرره، السبب هو إضافة عمود اسم الشركة. في هذه الحالة يتم التأكد من عدم تكرار قيمة الدولة واسم الشركة مع بعض