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

الاستعلامات الفرعية - الجزء الأول

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

تسمح لنا الاستعلامات الفرعية (Subqueries) بدمج استعلامات متعددة في استعلام واحد. على سبيل المثال، لننظر إلى جدول <strong>employees</strong> التالي:

المعرفالراتب
148
234
346
413
528

نحن بحاجة إلى استعلام فرعي لأننا لا نستطيع استخدام WHERE salary > AVG(salary) مباشرة لأن الدوال التجميعية مثل AVG() لا يمكن استخدامها في عبارة WHERE - بل يمكن استخدامها فقط بعد تجميع البيانات.

SELECT id, salary
FROM employees
WHERE salary > (
    SELECT AVG(salary)
    FROM employees
);

يساعدنا الاستعلام الفرعي (subquery) في العثور على الموظفين الذين يتقاضون رواتب تزيد عن متوسط رواتب الشركة من خلال حساب المتوسط أولاً (الاستعلام الداخلي) ثم استخدام تلك القيمة لتصفية الموظفين (الاستعلام الخارجي).

بما أن المتوسط هو: (48 + 34 + 46 + 13 + 28) / 5 = 33.8، هذه هي نتيجة الاستعلام:

المعرفالراتب
148
234
346
challenge icon

التحدي

سهل

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

  • <strong>shop</strong>: <strong>price</strong>, <strong>quantity</strong>, <strong>category</strong>, <strong>list_date</strong>

اكتب استعلاماً للعثور على جميع العناصر (حدد جميع الأعمدة) حيث يكون السعر أعلى من متوسط سعر جميع العناصر.

استخدم استعلاماً فرعياً في عبارة WHERE لحساب متوسط السعر، ثم قارن سعر كل عنصر بهذا المتوسط.

ورقة مرجعية

تسمح الاستعلامات الفرعية (Subqueries) بدمج استعلامات متعددة في استعلام واحد. وهي مفيدة عندما لا يمكنك استخدام الدوال التجميعية مثل AVG() مباشرة في جملة WHERE.

بنية الاستعلام الفرعي الأساسية:

SELECT column1, column2
FROM table_name
WHERE column1 > (
    SELECT AVG(column1)
    FROM table_name
);

يتم تنفيذ الاستعلام الفرعي (الاستعلام الداخلي) أولاً لحساب المتوسط، ثم يستخدم الاستعلام الخارجي تلك النتيجة لتصفية البيانات.

جرّب بنفسك

quiz iconاختبر نفسك

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

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