Menu
CoddyTech
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

ابحث عن الفئات التي تكون كميتها الإجمالية أكبر من متوسط جميع الكميات في المتجر. أرجِع category والكمية المُجمَّعة باسم total_quantity.

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

خطوات الحل:

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

جرّب بنفسك

quiz iconاختبر نفسك

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

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

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