Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

دوال التجميع

جزء من قسم الأساسيات في رحلة SQL على Coddy. الدرس 68 من 72.

تُستخدم دوال التجميع لحساب AVG() أو MAX() أو أي دالة تجميع أخرى حتى الصف الحالي.
على سبيل المثال، يمكننا حساب الحد الأقصى للإيرادات التي حصلنا عليها حتى كل فترة نهائية:

monthrevenueregion
440الشرق
520الشرق
660الغرب
755الغرب
861الشرق
SELECT month, revenue, MAX(revenue) OVER (ORDER BY month ASC) as max_revenue
from table1

سيُرجع هذا:

monthrevenuemax_revenue
44040
52040
66060
75560
86161

بالنسبة إلى الشهرين 4 و5، تبلغ أعلى قيمة للإيرادات 40، وبالنسبة إلى الشهرين 6 و7 فهي 60، وبالنسبة إلى الشهر 8 فهي 61. يعود ذلك إلى أنه عندما يجد قيمة إيرادات أكبر جديدة، يتخلّى عن القيمة القديمة ويستخدم أكبر قيمة حتى الآن.

بالنسبة إلى الدالة AVG() سيبدو الأمر هكذا:

SELECT month, revenue, AVG(revenue) OVER (ORDER BY month ASC) as avg_revenue
from table1
monthrevenueavg_revenue
44040
52030
66040
75543.75
86147.2

يمكننا أيضًا تجميع حساباتنا حسب فئات محددة باستخدام PARTITION BY. على سبيل المثال:

SELECT month, revenue, region,
MAX(revenue) OVER (PARTITION BY region ORDER BY month ASC) as max_revenue
FROM table1

سيمنحنا:

monthrevenueregionmax_revenue
440East40
520East40
660West60
755West60
861East61

الآن يتم حساب القيمة القصوى بشكل منفصل لكل منطقة. تحتفظ منطقتا East وWest بالقيم القصوى التراكمية الخاصة بهما بشكل مستقل.

challenge icon

التحدي

سهل

الجداول والأعمدة المتاحة:

  • books: book، page، words

لكل book، اعرض اسم book، وإجمالي عدد الصفحات فيه، وعدد الكلمات في كل صفحة، واحسب ما يلي:

  1. العدد الأقصى للكلمات الموجودة في أي صفحة من صفحات ذلك book
  2. متوسط عدد الكلمات لكل صفحة في book بأكمله
  3. الفرق بين عدد الكلمات في الصفحة الحالية ومتوسط عدد الكلمات لكل صفحة في book

اعرض النتائج مرتبة حسب book ورقم page.

أعد الأعمدة التالية:

  • book
  • page
  • words
  • max_words_in_book
  • avg_words_per_page
  • diff_from_avg

جرّب بنفسك

quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس الأساسيات

تدرّب بنفسك: Playground لـ SQL