المجموع التراكمي
جزء من قسم ما وراء الأساسيات في رحلة SQL على Coddy — الدرس 25 من 27.
المجموع التراكمي (running total) هو SUM عبر نافذة (window) باستخدام ORDER BY: مما يحول التجميع إلى تجميع ينمو صفاً بصف.
SELECT day, amount,
SUM(amount) OVER (ORDER BY day) AS running_total
FROM revenueبدون ORDER BY، تغطي النافذة كل صف وستحصل على المجموع الكلي في كل سطر. باستخدامها، تتوسع النافذة صفاً واحداً في كل مرة بهذا الترتيب، بحيث يرى كل صف نفسه فقط وكل ما قبله.
أضف PARTITION BY لإعادة تعيين المجموع التراكمي لكل مجموعة، على سبيل المثال، المجموع التراكمي للإيرادات لكل منطقة، يوماً بيوم.
التحدي
سهلالجداول والأعمدة المتاحة:
<strong>revenue</strong>:<strong>region</strong>,<strong>day</strong>,<strong>amount</strong>
قم بإرجاع region، و day، و amount، و region_running_total: وهو المجموع التراكمي لـ amount لـ ذلك المنطقة (region) حتى هذا اليوم وما قبله. يجب أن يُعاد تعيين المجموع التراكمي لكل منطقة.
استخدم PARTITION BY في النافذة (window). قم بالترتيب حسب region، ثم day.
ورقة مرجعية
يستخدم الـ إجمالي التراكمي (running total) الدالة SUM مع ORDER BY في النافذة (window) — حيث تتوسع النافذة صفاً بصف وفقاً لهذا الترتيب:
SELECT day, amount,
SUM(amount) OVER (ORDER BY day) AS running_total
FROM revenueأضف PARTITION BY لإعادة تعيين الإجمالي التراكمي لكل مجموعة:
SELECT region, day, amount,
SUM(amount) OVER (PARTITION BY region ORDER BY day) AS region_running_total
FROM revenue
ORDER BY region, dayجرّب بنفسك
SELECT region, day, amount,
-- SUM(amount) OVER (PARTITION BY region ORDER BY day)
FROM revenue
ORDER BY region, day
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.