التجميع - الجزء الثاني
جزء من قسم الأساسيات في رحلة 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 لا يمكنه التحقق من أي تجميعات. ولهذا، لدينا الكلمة المفتاحية 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سيستعرض هذا أولًا السجلات واحدًا تلو الآخر ويُصفّي جميع السجلات التي يكون فيها price أكبر من 25، وبعد ذلك فقط سينفّذ عبارة GROUP BY ويُصفّي كل category التي يكون فيها متوسط price أكبر من 40.
التحدي
متوسطالجداول والأعمدة المتاحة:
earthquakes:location،amplitude،period
مقياس ريختر هو مقياس لوغاريتمي يُستخدم لقياس قوة الزلازل.
نحتاج إلى إرجاع متوسط القوة لكل موقع لجميع الزلازل الكبرى.
يُعرَّف الزلزال الكبير كما يلي:
- تكون السعة أكبر من أو تساوي 1
- تكون فترة الموجات أكبر من أو تساوي دقيقة واحدة
في هذا التحدي، سنستخدم صيغة مختلفة: M = (A/T)<sup>2</sup> / T، وهي مكافئة للصيغة M = ((A/T)*(A/T)) / T.
أعد الموقع ومتوسط القوة لكل موقع، مع تضمين الزلازل الكبرى فقط (سمِّ العمود avg_magnitude). أدرج في نتيجتك فقط المواقع التي يكون فيها avg_magnitude أكبر من 1.
قرِّب النتائج إلى منزلتين عشريتين.
جرّب بنفسك
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس الأساسيات
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