الاستعلامات الفرعية - الجزء الثاني
جزء من قسم الأساسيات في رحلة 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
ابحث عن الفئات التي تكون كميتها الإجمالية أكبر من متوسط جميع الكميات في المتجر. أرجِع category والكمية المُجمَّعة باسم total_quantity.
مهم: يجب استخدام استعلام فرعي داخل عبارة HAVING لحساب المتوسط. لا تستخدم قيمة ثابتة أو استعلامًا منفصلًا: يجب أن يحسب الاستعلام الفرعي AVG(quantity) من جدول shop مباشرةً داخل HAVING.
خطوات الحل:
- أولًا، اكتب استعلامًا فرعيًا يحسب متوسط جميع الكميات في المتجر:
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