دوال التجميع المدمجة - الجزء الثاني
جزء من قسم الأساسيات في رحلة SQL على Coddy. الدرس 35 من 72.
أحيانًا نحتاج إلى استخدام الدوال التجميعية بطرق أكثر تعقيدًا، مثل مقارنة كل صف بقيمة تجميعية. وهنا تصبح الاستعلامات المتداخلة مفيدة.
عندما تريد إجراء حسابات تجمع بين الصفوف الفردية والقيم التجميعية، تحتاج إلى استخدام استعلام متداخل. إليك السبب:
لن يمنحك هذا النتيجة لكل صف التي تريدها:
SELECT value + MIN(value)
FROM table1السبب هو أن دوال التجميع تعمل على العمود بأكمله، بينما يحاول المرجع 'value' العمل صفًا تلو الآخر. لحل هذه المشكلة، نستخدم استعلامًا متداخلًا:
SELECT value + (SELECT MIN(value) FROM table1)
FROM table1يعمل هذا لأن الاستعلام المتداخل (SELECT MIN(value) FROM table1) يُنفَّذ أولًا ويُرجع قيمة واحدة، والتي يمكن استخدامها بعد ذلك في الاستعلام الرئيسي لكل صف.
حالات الاستخدام الشائعة للتجميعات المتداخلة:
1. مقارنة كل قيمة بالمتوسط
2. حساب النسبة المئوية من الإجمالي
3. إيجاد الفروقات عن القيم القصوى أو الدنيا
التحدي
سهلالجداول والأعمدة المتاحة:
items:id،price
احسب مقدار تجاوز سعر كل عنصر لمتوسط سعر جميع العناصر. اعرض معرّف العنصر وسعره والفرق عن المتوسط. سمِّ عمود الفرق باسم diff_from_avg.
رتّب النتائج حسب الفرق بترتيب تنازلي.
جرّب بنفسك
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس الأساسيات
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