استخدام SELECT DISTINCT في SQL
عند العمل مع قواعد البيانات، نواجه غالبًا قيمًا مكررة في الأعمدة. بيان SELECT DISTINCT في SQL يسمح لنا باسترجاع القيم الفريدة فقط من عمود أو مجموعة أعمدة.
هذا يُسهّل عملية التحليل والتقارير ويمنع التكرار الذي قد يربك المستخدم أو يسبب أخطاء في الإحصاءات.
ما هو SELECT DISTINCT؟
يُستخدم بيان SELECT DISTINCT لإرجاع قيم مميزة (مختلفة) فقط من قاعدة البيانات. فهو يتخلص من جميع القيم المكررة ويعيد كل قيمة مرة واحدة فقط.
يمكن استخدام DISTINCT على عمود واحد أو أكثر لتصفية البيانات حسب الحاجة.
الصيغة العامة
SELECT DISTINCT column1, column2, ...
FROM table_name;
مثال عملي
لنفترض أن لدينا جدول "العملاء" التالي:
| CustomerID | CustomerName | ContactName | Address | City | PostalCode | Country |
|---|---|---|---|---|---|---|
| 1 | Alfreds Futterkiste | Maria Anders | Obere Str. 57 | Berlin | 12209 | Germany |
| 2 | Ana Trujillo Emparedados y helados | Ana Trujillo | Avda. de la Constitución 2222 | México D.F. | 05021 | Mexico |
| 3 | Antonio Moreno Taquería | Antonio Moreno | Mataderos 2312 | México D.F. | 05023 | Mexico |
| 4 | Around the Horn | Thomas Hardy | 120 Hanover Sq. | London | WA1 1DP | UK |
| 5 | Berglunds snabbköp | Christina Berglund | Berguvsvägen 8 | Luleå | S-958 22 | Sweden |
لإرجاع قائمة بالبلدان المختلفة فقط من جدول العملاء:
SELECT DISTINCT Country FROM Customers;
ستكون النتيجة:
| Country |
|---|
| Germany |
| Mexico |
| UK |
| Sweden |
عد القيم المميزة
يمكننا استخدام الكلمة الأساسية DISTINCT داخل دالة COUNT لإرجاع عدد البلدان المختلفة، وهو مفيد عند إعداد التقارير أو التحليلات.
SELECT COUNT(DISTINCT Country) FROM Customers;
الفرق بين SELECT و SELECT DISTINCT
عند استخدام SELECT بدون DISTINCT، سيتم إرجاع جميع القيم بما في ذلك التكرارات، بينما SELECT DISTINCT يزيل التكرارات ويعيد كل قيمة مرة واحدة فقط.
SELECT Country FROM Customers;
نصائح عملية عند استخدام SELECT DISTINCT
- استخدم
DISTINCTلتقليل البيانات المكررة قبل التحليل. - يمكن دمج
DISTINCTمع أكثر من عمود للحصول على مزيج فريد من القيم. - استخدام
DISTINCTمعORDER BYيساعد على ترتيب النتائج الفريدة بسهولة. - يمكن دمج
DISTINCTمعJOINلعرض قيم فريدة من جداول متعددة.
تعليقات
إرسال تعليق