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

الاستعلامات الفرعية - الجزء الثاني

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

هناك ثلاثة أنواع رئيسية من الاستعلامات الفرعية:

  1. الاستعلامات الفرعية القياسية - تُرجع قيمة واحدة (صفًا واحدًا وعمودًا واحدًا)
  2. الاستعلامات الفرعية للصفوف - تُرجع صفًا واحدًا ذا أعمدة متعددة
  3. الاستعلامات الفرعية للجدول - تُرجع صفوفًا وأعمدة متعددة

على سبيل المثال، إليك بعض حالات الاستخدام لكل نوع من أنواع الاستعلامات الفرعية:

استعلام فرعي قياسي - البحث عن الموظفين الذين يتقاضون راتبًا أعلى من متوسط الراتب:

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

استعلام فرعي صَفّي - ابحث عن الموظف (الموظفين) الذين لديهم القسم والراتب نفسيهما مثل Alice

SELECT name
FROM employees
WHERE (department, salary) = (
    SELECT department, salary
    FROM employees
    WHERE name = 'Alice'
);

استعلامات فرعية للجدول - عرض الأقسام وعدد موظفيها

SELECT department, count
FROM (
    SELECT department, COUNT(*) as count
    FROM employees
    GROUP BY department
) as dept_counts;

لاحظ حالات الاستخدام:

  • قيمة مفردة - مقارنات بسيطة (>، <، =)
  • عندما تحتاج إلى مطابقة أعمدة متعددة
  • عندما تحتاج إلى الاستعلام من مجموعة نتائج
challenge icon

التحدي

سهل

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

  • shop: price، quantity، category، list_date

ابحث عن الفئات التي تكون فيها الكمية الإجمالية أكبر من متوسط جميع الكميات في shop.

مهم: يجب استخدام استعلام فرعي داخل عبارة HAVING لحساب المتوسط. لا تستخدم قيمة ثابتة أو استعلامًا منفصلًا: يجب أن يحسب الاستعلام الفرعي AVG(quantity) من جدول shop مباشرةً داخل HAVING.

خطوات الحل:

  1. أولًا، اكتب استعلامًا فرعيًا يحسب متوسط جميع الكميات في shop: SELECT AVG(quantity) FROM shop
  2. بعد ذلك، اجمع كميات كل فئة وقارنها بهذا الاستعلام الفرعي باستخدام الكلمة المفتاحية HAVING

جرّب بنفسك

quiz iconاختبر نفسك

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

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

تدرّب بنفسك: Playground لـ SQL