Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

UNION مقابل UNION ALL

جزء من قسم ما وراء الأساسيات في رحلة SQL على Coddy — الدرس 16 من 27.

لقد تعرفت على UNION في الأساسيات: فهي تقوم بتكديس مجموعتي نتائج فوق بعضهما البعض. بشكل افتراضي، تقوم أيضًا بـ إزالة التكرارات، مما يتطلب عملية فرز إضافية.

SELECT name FROM authors
UNION
SELECT name FROM editors

تقوم UNION ALL بنفس عملية التكديس ولكنها تحتفظ بالتكرارات. إنها أسرع وهي ما تريده دائمًا تقريبًا عندما تعلم أن الجانبين لا يمكنهما إنتاج نفس الصف، أو عندما تريد فعليًا حساب كل تكرار.

SELECT name FROM authors
UNION ALL
SELECT name FROM editors

يجب أن يعيد كلا الجانبين نفس عدد الأعمدة، وبنفس الترتيب، وبأنواع متوافقة.

challenge icon

التحدي

سهل

الجداول والأعمدة المتاحة:

  • <strong>online_orders</strong>: <strong>order_no</strong>, <strong>amount</strong>
  • <strong>retail_orders</strong>: <strong>ticket_no</strong>, <strong>total</strong>

يتتبع الجدولان الطلبات من قنوات مختلفة بأسماء أعمدة مختلفة. قم بإرجاع قائمة واحدة مجمعة لكل طلب مع الأعمدة التالية:

  • channel: 'online' أو 'retail'
  • order_id: order_no من online، و ticket_no من retail
  • amount: إجمالي الطلب (من amount أو total)

احتفظ بكل صف (بدون إزالة التكرار). قم بالترتيب حسب amount تنازلياً.

ورقة مرجعية

تقوم UNION بتكديس مجموعتي نتائج وتزيل التكرارات (أبطأ). تقوم UNION ALL بالتكديس وتحتفظ بالتكرارات (أسرع):

SELECT name FROM authors
UNION ALL
SELECT name FROM editors

يجب أن يحتوي كلا الجانبين على نفس عدد الأعمدة، وبنفس الترتيب، وبأنواع متوافقة. تأتي أسماء الأعمدة من جملة SELECT الأولى.

جرّب بنفسك

-- جملتا SELECT تمت محاذاتهما لنفس الأعمدة الـ 3، وتم الربط بينهما بواسطة UNION ALL
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس ما وراء الأساسيات