شبكة تعلم مع ناو

كيف أكتشف القيم المتكررة باستخدام GROUP BY وHAVING في SQL؟

يمكن اكتشاف القيم المتكررة بتجميع الصفوف حسب العمود المطلوب، ثم الاحتفاظ بالمجموعات التي يزيد عدد صفوفها على واحد. تستخدم هذه الطريقة مثلا لمراجعة البريد الإلكتروني المتكرر في جدول العملاء. النتيجة تعرض القيم التي تكررت وعدد مرات ظهورها، بدلا من عرض جميع سجلات العملاء بالتفصيل.

مثال

SELECT email, COUNT(*) AS occurrences
FROM customers
WHERE email IS NOT NULL
GROUP BY email
HAVING COUNT(*) > 1;

يستبعد الشرط الأول البريد المفقود، ثم ينشئ التجميع مجموعة لكل بريد معروف. بعد ذلك يحتفظ HAVING بالمجموعات التي تحتوي على صفين على الأقل. لا يناسب الشرط COUNT(*) = 2 البحث عن جميع التكرارات، لأنه يستبعد البريد الذي يظهر ثلاث مرات أو أكثر.

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

باختصار: لاكتشاف التكرارات، اجمع حسب القيمة المطلوبة واستخدم HAVING COUNT(*) > 1.

هل تريد تعلّم SQL خطوة بخطوة مع تمارين عملية؟ تابع مسار SQL من الأساسيات للاحتراف.

اختبر نفسك

خمسة أسئلة سريعة، مع الإجابة والشرح بعد كل سؤال.