الاستعلامات الفرعية - الجزء الثاني
جزء من قسم الأساسيات في رحلة SQL على Coddy. الدرس 39 من 72.
هناك ثلاثة أنواع رئيسية من الاستعلامات الفرعية:
- الاستعلامات الفرعية القياسية - تُرجع قيمة واحدة (صفًا واحدًا وعمودًا واحدًا)
- الاستعلامات الفرعية للصفوف - تُرجع صفًا واحدًا ذا أعمدة متعددة
- الاستعلامات الفرعية للجدول - تُرجع صفوفًا وأعمدة متعددة
على سبيل المثال، إليك بعض حالات الاستخدام لكل نوع من أنواع الاستعلامات الفرعية:
استعلام فرعي قياسي - البحث عن الموظفين الذين يتقاضون راتبًا أعلى من متوسط الراتب:
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;لاحظ حالات الاستخدام:
- قيمة مفردة - مقارنات بسيطة (>، <، =)
- عندما تحتاج إلى مطابقة أعمدة متعددة
- عندما تحتاج إلى الاستعلام من مجموعة نتائج
التحدي
سهلالجداول والأعمدة المتاحة:
shop:price،quantity،category،list_date
ابحث عن الفئات التي تكون فيها الكمية الإجمالية أكبر من متوسط جميع الكميات في shop.
مهم: يجب استخدام استعلام فرعي داخل عبارة HAVING لحساب المتوسط. لا تستخدم قيمة ثابتة أو استعلامًا منفصلًا: يجب أن يحسب الاستعلام الفرعي AVG(quantity) من جدول shop مباشرةً داخل HAVING.
خطوات الحل:
- أولًا، اكتب استعلامًا فرعيًا يحسب متوسط جميع الكميات في shop:
SELECT AVG(quantity) FROM shop - بعد ذلك، اجمع كميات كل فئة وقارنها بهذا الاستعلام الفرعي باستخدام الكلمة المفتاحية
HAVING
جرّب بنفسك
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس الأساسيات
2الشروط
أساسيات الشروطالكلمة المفتاحية ANDالكلمة المفتاحية ORالكلمة المفتاحية NOTدمج شروط متعددةالأقواسالقيم المنطقية Booleans3تنسيق محدد للنتائج
قيم Nullترتيب النتائج - الجزء الأولترتيب النتائج - الجزء الثانيمراجعة - شركة للأمن السيبرانيتحديد عدد السجلاتمراجعة - مصنع مركبات6تحديات تمهيدية
مراجعة - الانتخابات البرلمانيةمراجعة - اعتقال الشرطة للمجرمينمراجعة - حاوية مشروبات البارمراجعة - هندسة أعمدة جديدة9جداول متعددة
الربط الأساسي - الجزء الأولالربط الأساسي - الجزء الثانيمراجعة - الربط (Join)الربط الذاتي (Self Join)مراجعة - الربط الذاتي (Self Join)الاتحاد (Union)تبسيط الاستعلامات، الكلمة المفتاحية WITHمراجعة - استعلامات WITHمراجعة - مقاول العقارات12Window Functions الجزء الثاني
دوال RANK و DENSE_RANKمراجعة - RANK و DENSE_RANKدالة NTILEدوال التجميعمعيار ROWS و RANGEتدرّب بنفسك: Playground لـ SQL