يمكن أن يكون التعامل مع القيم المكررة في SQL مهمة مرهقة. لكن لا تخف ، هذا الدليل موجود هنا لتخفيف العبء عنك.
تأتي البيانات في جميع الأشكال والنماذج ، لكن السجلات المكررة هي جزء بارز من كل تنسيق بيانات. سواء كنت تتعامل مع البيانات المستندة إلى الويب أو تتنقل ببساطة عبر حمولة شاحنة من بيانات المبيعات ، فإن تحليلك سيشوه إذا كان لديك قيم مكررة.
هل تستخدم SQL لتحليل أرقامك وإجراء استعلامات طويلة على مكدسات البيانات الخاصة بك؟ إذا كانت الإجابة بنعم ، فسيكون هذا الدليل حول إدارة نسخ SQL المكررة متعة مطلقة بالنسبة لك.
فيما يلي بعض الطرق المختلفة التي يمكنك استخدامها لإدارة التكرارات باستخدام SQL.
1. عد التكرارات باستخدام تجميع حسب الوظيفة
SQL هي لغة برمجة متعددة الأوجه تقدم وظائف مختلفة لتبسيط العمليات الحسابية. إذا كان لديك الكثير من الخبرة في استخدام وظائف التجميع في SQL ، فقد تكون على دراية بامتداد تجميع حسب الوظيفة وما يمكن استخدامه من أجله.
ال مجموعة من الوظيفة هي واحدة من معظم أوامر SQL الأساسية، وهو مثالي للتعامل مع سجلات متعددة حيث يمكنك استخدام وظائف تجميعية مختلفة مثل مجموع, عدد, متوسط، والعديد من الآخرين بالاشتراك مع مجموعة من وظيفة للوصول إلى قيمة مميزة من ناحية الصف.
اعتمادًا على السيناريو ، يمكنك العثور على التكرارات باستخدام ملف مجموعة من تعمل ضمن عمود واحد وأعمدة متعددة.
أ. عد التكرارات في عمود واحد
افترض أن لديك جدول البيانات التالي مع عمودين: معرف المنتج و طلبات.
معرف المنتج |
طلبات |
2 |
7 |
2 |
8 |
2 |
10 |
9 |
6 |
10 |
1 |
10 |
5 |
12 |
5 |
12 |
12 |
12 |
7 |
14 |
1 |
14 |
1 |
47 |
4 |
47 |
4 |
للعثور على معرّفات منتجات مكررة ، يمكنك استخدام ملحق مجموعة من وظيفة و نأخذ بند لتصفية القيم المجمعة ، على النحو التالي:
يختار معرف المنتج، عدد(معرف المنتج) مثل المجموع_العدد
من sahil.product_dups
تجميع حسب productid
بعد العد (معرّف المنتج)> 1
الطلب حسب معرّف المنتج ؛
كما هو الحال مع عبارة SQL النموذجية ، يجب أن تبدأ بتحديد الأعمدة التي تريد عرضها في النتيجة النهائية. في هذه الحالة ، نريد عرض عدد القيم المكررة داخل ملف معرف المنتج عمود.
في المقطع الأول ، حدد ملف معرف المنتج العمود داخل يختار إفادة. ال عدد الوظيفة تتبع ال معرف المنتج مرجع حتى يفهم SQL الغرض من الاستعلام الخاص بك.
بعد ذلك ، حدد الجدول المصدر باستخدام من بند. منذ عدد هي دالة تجميع ، تحتاج إلى استخدام مجموعة من تعمل لتجميع كل القيم المتشابهة.
تذكر أن الفكرة هي سرد القيم المكررة داخل ملف معرف المنتج عمود. للقيام بذلك ، يجب عليك تصفية العدد وعرض القيم التي تحدث أكثر من مرة في العمود. ال نأخذ شرط بتصفية البيانات المجمعة ؛ يمكنك استخدام الشرط ، أي عدد (معرف المنتج)> 1 ، لعرض النتائج المرجوة.
وأخيرا، فإن ترتيب حسب بند يفرز النتائج النهائية بترتيب تصاعدي.
الإخراج كالتالي:
ب. عد التكرارات في أعمدة متعددة
عندما تريد حساب التكرارات في أعمدة متعددة ولكن لا تريد كتابة استعلامات SQL متعددة ، يمكنك توسيع الكود أعلاه مع بعض التعديلات. على سبيل المثال ، إذا كنت تريد عرض صفوف مكررة في عدة أعمدة ، فيمكنك استخدام التعليمات البرمجية التالية:
يختار productid الطلبات ، عدد(*) مثل المجموع_العدد
من sahil.product_dups
تجميع حسب productid ، الطلبات
بعد العد (معرّف المنتج)> 1
الطلب حسب معرّف المنتج ؛
في الإخراج ، ستلاحظ أنه يتم عرض صفين فقط. عندما تقوم بتعديل الاستعلام وإضافة مرجع كلا العمودين داخل ملف يختار البيان ، تحصل على عدد من الصفوف المتطابقة ذات القيم المكررة.
بدلا من ال عدد (عمود) وظيفة ، يجب عليك تمرير عدد(*) وظيفة للحصول على صفوف مكررة. ال * تقوم الدالة بالتبديل بين جميع الصفوف وتبحث عن الصفوف المكررة بدلاً من القيم المكررة الفردية.
الإخراج موضح أدناه:
يتم عرض الصفوف المقابلة مع معرف المنتج 14 و 47 لأن قيم الأمر هي نفسها.
2. تعليم التكرارات باستخدام دالة row_number ()
بينما ال مجموعة من و نأخذ الجمع هو أبسط طريقة للعثور على التكرارات ووضع علامة عليها داخل جدول ، وهناك طريقة بديلة للعثور على التكرارات باستخدام رقم الصف() وظيفة. ال رقم الصف() الوظيفة هي جزء من وظائف نافذة SQL فئة وهي ضرورية لمعالجة استفساراتك بكفاءة.
إليك كيفية وضع علامة على التكرارات باستخدام ملف رقم الصف() وظيفة:
يختار productid الطلبات ،
row_number () over (التقسيم بترتيب معرّف المنتج حسب productid) كـ sno
من sahil.product_dups؛
ال رقم الصف() تقوم الدالة بتمشيط كل قيمة معرّف المنتج وتستوعب عدد مرات التكرار لكل معرّف. ال تقسيم تعمل الكلمة الأساسية على فصل القيم المكررة وتعيين القيم ترتيبًا زمنيًا ، مثل 1 و 2،3 وما إلى ذلك.
إذا كنت لا تستخدم تقسيم الكلمة الرئيسية ، سيكون لديك رقم تسلسلي فريد لجميع معرفات المنتج ، والذي لن يناسب غرضك.
ال ترتيب حسب شرط داخل قسم القسم وظيفي عند تحديد ترتيب الفرز. يمكنك الاختيار بين ترتيب تصاعدي (افتراضي) وتنازلي.
أخيرًا ، يمكنك تعيين اسم مستعار للعمود لتسهيل التصفية لاحقًا (إذا لزم الأمر).
3. حذف الصفوف المكررة من جدول SQL
نظرًا لأن القيم المكررة في الجدول يمكن أن تؤدي إلى تحريف تحليلك ، فإن التخلص منها أثناء مرحلة تنظيف البيانات غالبًا ما يكون أمرًا ضروريًا. SQL هي لغة قيمة توفر طرقًا لتتبع وحذف القيم المكررة بكفاءة.
أ. استخدام الكلمة المفتاحية المميزة
ال متميز من المحتمل أن تكون الكلمة الأساسية هي دالة SQL الأكثر شيوعًا والأكثر استخدامًا لإزالة القيم المكررة في الجدول. يمكنك إزالة التكرارات من عمود واحد أو حتى الصفوف المكررة دفعة واحدة.
إليك كيفية إزالة التكرارات من عمود واحد:
يختارمتميز معرف المنتج من سهيل.
يُرجع الإخراج قائمة بجميع معرّفات المنتجات الفريدة من الجدول.
لإزالة الصفوف المكررة ، يمكنك تعديل الكود أعلاه كما يلي:
يختارمتميز * من سهيل.
يُرجع الإخراج قائمة بجميع الصفوف الفريدة من الجدول. بالنظر إلى الإخراج ، ستلاحظ أن معرفي المنتج 14 و 47 يظهران مرة واحدة فقط في جدول النتائج النهائية.
ب. استخدام طريقة تعبير الجدول المشترك (CTE)
تختلف طريقة تعبير الجدول المشترك (CTE) قليلاً عن كود SQL السائد. CTEs تشبه جداول SQL المؤقتة، مع الاختلاف الوحيد في أنها افتراضية ، والتي يمكنك الرجوع إليها أثناء تنفيذ الاستعلام فقط.
أكبر فائدة هي أنك لست مضطرًا إلى تمرير استعلام منفصل لإسقاط هذه الجداول لاحقًا ، لأنها تتوقف عن الوجود بمجرد تنفيذ الاستعلام. باستخدام طريقة CTE ، يمكنك استخدام الكود أدناه للعثور على التكرارات وحذفها.
مع منتجات مثل
(يختار productid الطلبات ،
row_number () over (التقسيم بترتيب معرّف المنتج حسب productid) كـ sno
من sahil.product_dups)
يختار * من منتجات
حيث sno = 1 ؛
يمكنك استدعاء دالة CTE باستخدام امتداد مع كلمة رئيسية ؛ تحديد اسم الجدول الظاهري المؤقت بعد مع كلمة رئيسية. يعتبر مرجع جدول CTE مفيدًا أثناء تصفية قيم الجدول.
في الجزء التالي ، قم بتعيين أرقام الصفوف لمعرفات المنتجات الخاصة بك باستخدام ملف رقم الصف() وظيفة. نظرًا لأنك تشير إلى كل معرّف منتج بامتداد تقسيم وظيفة ، كل معرف متكرر له قيمة مميزة.
أخيرًا ، قم بتصفية ملف سنو العمود في المقطع الأخير مع آخر يختار إفادة. اضبط هذا المرشح على 1 للحصول على قيم فريدة في الإخراج النهائي.
تعلم كيفية استخدام SQL بالطريقة السهلة
أصبحت SQL ومتغيراته حديث المدينة ، مع قدرتها الفطرية على الاستعلام عن قواعد البيانات العلائقية واستخدامها. من كتابة استعلامات بسيطة إلى إجراء تحليلات تفصيلية باستخدام استعلامات فرعية ، تحتوي هذه اللغة على القليل من كل شيء.
ومع ذلك ، قبل كتابة أي استفسارات ، يجب عليك صقل مهاراتك والتغلب على الأكواد لجعل نفسك مبرمجًا بارعًا. يمكنك تعلم لغة SQL بطريقة ممتعة من خلال تطبيق معرفتك في الألعاب. تعلم بعض الفروق الدقيقة في الترميز عن طريق إضافة القليل من المرح إلى التعليمات البرمجية الخاصة بك.