التجميع - الجزء الثاني
جزء من قسم الأساسيات في رحلة SQL على Coddy — الدرس 37 من 72.
تنفذ الكلمة المفتاحية WHERE شرطًا على كل سجل بشكل منفصل. على سبيل المثال:
SELECT * FROM table1
WHERE col1 > col2سيتم تنفيذ col1 > col2 على كل سجل والتحقق مما إذا كان يتحقق.
ولكن ماذا لو أردنا تصفية النتائج التجميعية؟ على سبيل المثال:
SELECT category, AVG(price) FROM table1
WHERE AVG(price) > 40
GROUP BY categoryلن يعمل هذا لأن WHERE لا يمكنه التحقق من أي تجميعات (aggregations). لهذا الغرض، لدينا الكلمة المفتاحية HAVING. فهي تقوم بتصفية البيانات بناءً على الشرط التجميعي.
SELECT category, AVG(price) FROM table1
GROUP BY category
HAVING AVG(price) > 40سيقوم هذا بتصفية جميع الفئات التي يكون فيها متوسط السعر أكبر من 40.
إذا أردنا الدمج بين جملتي HAVING و WHERE، فسوف نكتب:
SELECT category, AVG(price) FROM table1
WHERE price > 25
GROUP BY category
HAVING AVG(price) > 40سيقوم هذا أولاً بالانتقال سجلاً تلو الآخر وتصفية جميع السجلات التي يكون فيها السعر أكبر من 25، وبعد ذلك فقط سيقوم بتشغيل بند GROUP BY وتصفية كل فئة يكون فيها متوسط السعر أكبر من 40.
التحدي
متوسطالجداول والأعمدة المتاحة:
<strong>earthquakes</strong>:<strong>location</strong>،<strong>amplitude</strong>،<strong>period</strong>
مقياس ريختر هو مقياس لوغاريتمي يُستخدم لقياس قوة الزلازل (magnitude).
نحتاج إلى إرجاع متوسط القوة (avg magnitude) لكل موقع لجميع الزلازل الكبرى.
يتم تعريف الزلزال الكبير كالتالي:
- أن تكون قيم الـ
amplitudeأكبر من أو تساوي 1 - أن تكون الـ
periodللموجات أكبر من أو تساوي 1 دقيقة
لهذا التحدي، سنستخدم صيغة مختلفة: M = (A/T)<sup>2</sup> / T، والتي تكافئ M = ((A/T)*(A/T)) / T.
قم بإرجاع الـ location ومتوسط القوة لكل موقع مع تضمين الزلازل الكبرى فقط (سمّ العمود avg_magnitude). قم بتضمين المواقع التي تكون فيها قيمة avg_magnitude أكبر من 1 فقط في نتيجتك.
قم بتقريب النتائج إلى منزلتين عشريتين (2 decimal places).
جرّب بنفسك
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس الأساسيات
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