SQL المبلغ التراكمي

Sql Almblgh Altrakmy



في SQL، يشير المجموع التراكمي إلى طريقة تسمح لنا بحساب الإجمالي الجاري لعمود رقمي داخل جدول قاعدة البيانات. يتم تفعيل المجموع التراكمي في مجموعة واسعة من السيناريوهات مثل تتبع التقدم أو حساب المتوسطات المتداولة لقيمة معينة.

في هذا البرنامج التعليمي، سوف نتعلم كيفية تنفيذ واستخدام المجموع التراكمي في SQL باستخدام أساليب وتقنيات مختلفة.







بيانات العينة

لفهم كيفية تنفيذ واستخدام المجموع التراكمي بشكل أفضل، دعونا نبدأ بإعداد جدول أساسي يحتوي على بيانات نموذجية. وهذا يسمح لنا بإظهار عمل جميع الطرق بسرعة وكفاءة في هذا المنشور.



ابدأ بإنشاء جدول أساسي يخزن معلومات المنتج.



إنشاء منتجات الجدول (
مفتاح المنتج الأساسي INT،
اسم المنتج VARCHAR ( 255 ) ,
السعر العشري ( 10 , 2 )
) ;





من المفترض أن يؤدي ذلك إلى إنشاء جدول جديد يسمى 'المنتجات' الذي يخزن معرف المنتج واسم المنتج وسعر كل منتج.

يمكننا بعد ذلك المتابعة لإضافة نموذج بيانات كما هو موضح في عبارات الإدراج في المثال التالي:



أدخل في المنتجات ( معرف_المنتج، اسم_المنتج، السعر )
قيم
( 1 , 'كود فيجوال ستوديو' , 10.00 ) ,
( 2 , 'نص سامية' , 80.00 ) ,
( 3 , 'PyCharm المحترف' , 199.00 ) ,
( 4 , 'الكسوف IDE' , 30.00 ) ,
( 5 , 'IntelliJ IDEA Ultimate' , 699.00 ) ,
( 6 , 'جيثب سطح المكتب' , 20.00 ) ,
( 7 , 'انتظر البرمجيات' , 10.00 ) ,
( 8 , 'إكس كود' , 660.00 ) ,
( 9 , 'نت بينز' , 0.00 ) ,
( 10 , 'ذرة' , 60.00 ) ;

ملحوظة: البيانات المقدمة خيالية تمامًا. ولا يمثل السعر الفعلي لأي من العناصر المدرجة.

الجدول الناتج هو كما يلي:

المجموع التراكمي لـ SQL (الانضمام الذاتي)

إحدى التقنيات التي يمكننا استخدامها لإجراء مجموع تراكمي على عمود معين هي استخدام طريقة الانضمام الذاتي. إحدى ميزات هذه الطريقة هي أنها تعمل في جميع قواعد بيانات SQL تقريبًا حتى تلك التي لا تدعم وظائف Window.

خذ على سبيل المثال جدول 'المنتجات' السابق. يمكننا إنشاء المجموع التراكمي لعمود السعر كما هو موضح في الاستعلام التالي:

يختار
p1.product_id،
p1.اسم_المنتج،
السعر،
مجموع ( p2.price ) AS التراكمي_المجموع
من
المنتجات ص1
ينضم
المنتجات ص2
على
p1.product_id > = p2.product_id
مجموعة من
p1.product_id،
p1.اسم_المنتج،
p1.price
ترتيب حسب
p1.product_id;

هل لاحظت طريقة عمل الاستعلام؟ إذا لم يكن الأمر كذلك، فابق معنا ونحن نشرح ذلك خطوة بخطوة.

في مثال الاستعلام المحدد، نبدأ بإنشاء اسمين مستعارين - 'p1' و'p2' - لجدول 'المنتجات' والذي يمكننا من إجراء ربط ذاتي.

ننتقل بعد ذلك إلى ضم 'p1' و'p2' بشرط أن يكون 'product_id' لـ 'p1' أكبر من أو يساوي 'product_id' لـ 'p2'.

في الخطوة التالية، نسمي الدالة sum() التي تحسب بشكل أساسي المجموع التراكمي للأسعار لكل صف.

وأخيرًا، نقوم بتجميع النتائج باستخدام 'معرف_المنتج' و'اسم_المنتج' و'السعر' وترتيب النتائج.

بعد هذه العملية يجب أن يكون لدينا مجموع تراكمي لكل سجل كما هو موضح في الجدول الناتج كما هو موضح في الشكل التالي:

كما ترون، نحصل على المبلغ الإجمالي لجميع الصفوف السابقة. يجب أن يحتوي الصف الأخير على المجموع الإجمالي لجميع الصفوف السابقة.

المجموع التراكمي لـ SQL (وظائف النافذة)

هناك طريقة أكثر كفاءة وعملية لحساب المجموع التراكمي في SQL وهي الاستفادة من وظائف النافذة كلما كانت مدعومة.

إذا كان لديك قاعدة بيانات مثل SQL Server، أو PostgreSQL، أو MySQL الإصدار 8.0 وما فوق، فهذه هي الطريقة الأكثر فائدة والموصى بها لتحديد المجموع التراكمي لعمود معين.

ألقِ نظرة على المثال كما هو موضح في ما يلي:

يختار
معرف المنتج،
اسم المنتج،
سعر،
مجموع ( سعر ) زيادة ( اطلب حسب المنتج_id ) AS التراكمي_المجموع
من
منتجات؛

في هذه الحالة، نبدأ بتحديد أعمدة 'معرف_المنتج' و'اسم_المنتج' و'السعر' من جدول 'المنتجات'.

نستخدم بعد ذلك الدالة SUM() كدالة نافذة باستخدام عبارة OVER.

في جملة OVER، نحدد جملة ORDER BY التي تحدد الترتيب الذي يتم به حساب المجموع التراكمي.

يجب أن يُرجع هذا مخرجات مماثلة كما هو موضح في ما يلي:

ستلاحظ أن استخدام وظائف النافذة أكثر تماسكًا وفعالية وقابلية للقراءة مقارنة باستخدام الصلات الذاتية.

خاتمة

في هذا البرنامج التعليمي، تعلمنا كل شيء عن المبالغ التراكمية في SQL. لقد قمنا أيضًا بتغطية كيفية استخدام وظائف الصلات الذاتية والنافذة لتنفيذ المجموع التراكمي في SQL.