دوال التجميع
جزء من قسم الأساسيات في رحلة SQL على Coddy. الدرس 68 من 72.
تُستخدم دوال التجميع لحساب AVG() أو MAX() أو أي دالة تجميع أخرى حتى الصف الحالي.
على سبيل المثال، يمكننا حساب الحد الأقصى للإيرادات التي حصلنا عليها حتى كل فترة نهائية:
| month | revenue | region |
| 4 | 40 | الشرق |
| 5 | 20 | الشرق |
| 6 | 60 | الغرب |
| 7 | 55 | الغرب |
| 8 | 61 | الشرق |
SELECT month, revenue, MAX(revenue) OVER (ORDER BY month ASC) as max_revenue
from table1سيُرجع هذا:
| month | revenue | max_revenue |
| 4 | 40 | 40 |
| 5 | 20 | 40 |
| 6 | 60 | 60 |
| 7 | 55 | 60 |
| 8 | 61 | 61 |
بالنسبة إلى الشهرين 4 و5، تبلغ أعلى قيمة للإيرادات 40، وبالنسبة إلى الشهرين 6 و7 فهي 60، وبالنسبة إلى الشهر 8 فهي 61. يعود ذلك إلى أنه عندما يجد قيمة إيرادات أكبر جديدة، يتخلّى عن القيمة القديمة ويستخدم أكبر قيمة حتى الآن.
بالنسبة إلى الدالة AVG() سيبدو الأمر هكذا:
SELECT month, revenue, AVG(revenue) OVER (ORDER BY month ASC) as avg_revenue
from table1| month | revenue | avg_revenue |
| 4 | 40 | 40 |
| 5 | 20 | 30 |
| 6 | 60 | 40 |
| 7 | 55 | 43.75 |
| 8 | 61 | 47.2 |
يمكننا أيضًا تجميع حساباتنا حسب فئات محددة باستخدام PARTITION BY. على سبيل المثال:
SELECT month, revenue, region,
MAX(revenue) OVER (PARTITION BY region ORDER BY month ASC) as max_revenue
FROM table1سيمنحنا:
| month | revenue | region | max_revenue |
| 4 | 40 | East | 40 |
| 5 | 20 | East | 40 |
| 6 | 60 | West | 60 |
| 7 | 55 | West | 60 |
| 8 | 61 | East | 61 |
الآن يتم حساب القيمة القصوى بشكل منفصل لكل منطقة. تحتفظ منطقتا East وWest بالقيم القصوى التراكمية الخاصة بهما بشكل مستقل.
التحدي
سهلالجداول والأعمدة المتاحة:
books:book،page،words
لكل book، اعرض اسم book، وإجمالي عدد الصفحات فيه، وعدد الكلمات في كل صفحة، واحسب ما يلي:
- العدد الأقصى للكلمات الموجودة في أي صفحة من صفحات ذلك
book - متوسط عدد الكلمات لكل صفحة في
bookبأكمله - الفرق بين عدد الكلمات في الصفحة الحالية ومتوسط عدد الكلمات لكل صفحة في
book
اعرض النتائج مرتبة حسب book ورقم page.
أعد الأعمدة التالية:
bookpagewordsmax_words_in_bookavg_words_per_pagediff_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