الدوال التجميعية والتمحور

يمكن استخدام الدوال التجميعية والمحورية لتجميع البيانات في جدول قاعدة البيانات.

يمكن شرح الوظيفة الأساسية بشكل أفضل من خلال مثال بسيط.

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

الآن دعونا نرى كيف يمكننا استخلاص بعض المعلومات المفيدة من مجموعة البيانات هذه.

الرواتب حسب الموظف

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

الجدول

يتكون الجدول من عمودين، أحدهما للاسم والآخر للراتب، وكلاهما بدون دالة تجميع.

تكوين عمود الاسم

تكوين عمود الراتب:

الرسم

تكوين المخطط

تكوين عمود قيمة الراتب

الرواتب المجمعة حسب القسم

جدول

تكوين عمود القسم:

يتم تجميع الموظفين حسب القسم.

على الرغم من أن المجموعة موجودة في القائمة المنسدلة لوظيفة التجميع، إلا أنها ليست وظيفة تجميع حقيقية. وظائف التجميع تجمع القيم (المجموع، العدد، المتوسط، الحد الأدنى، الحد الأقصى) بينما المجموعة تقوم فقط بتجميع الصفوف معًا.

تكوين عمود الرواتب:

نظرًا لأننا قمنا بالفعل بتجميع الموظفين حسب القسم، يجب أن تستخدم جميع الأعمدة الأخرى وظيفة تجميع. في هذه الحالة، نريد تلخيص رواتب الموظفين داخل القسم.

الرسم البياني

تكوين المخطط

يتم تجميع الصفوف تلقائيًا حسب العمود المحدد كعلامة المحور X.

تكوين عمود قيمة الراتب

متوسط الرواتب مجمعة حسب القسم

نفس التكوين كما في المثال أعلاه، باستثناء أن وظيفة التجميع لعمود الرواتب تم تعيينها على avg بدلاً من sum.

الجدول

مخطط

عدد الموظفين مجموعين حسب القسم

نفس التكوين كما في المثال أعلاه، باستثناء أن وظيفة التجميع لعمود الراتب مضبوطة على count بدلاً من sum.

جدول

الرسم

حالة خاصة (Distinct_count): 

إذا كانت مجموعة البيانات الأصلية تتضمن عدة إدخالات لنفس الشخص، فقد يعني ذلك أن هذا الشخص حصل على زيادة في
الراتب. يتم تمثيل زيادة الراتب كإدخال جديد في الجدول (وهذا يساعد في تتبع معلومات الراتب القديم)

في لقطة الشاشة أدناه، حصل هانز موستر على زيادة في الراتب، لذا أصبح راتبه الجديد (100'000.00)

image-20240729-063722.png

استخدام الإعدادات السابقة لحساب عدد الموظفين المجموعين حسب القسم سيؤدي إلى احتساب هانز مرتين.
تغيير الدالة التجميعية من count(salary) إلى count(name) سيؤدي إلى نفس النتيجة الخاطئة كما هو موضح أدناه:

استخدام count(salary)

image-20240729-082621.png

image-20240729-082947.png

استخدام count(name)

image-20240729-083033.png

image-20240729-083145.png

يتم تمثيل الحل باستخدام الدالة التجميعية distinct_count

image-20240729-082405.png

image-20240729-082348.png

الراتب حسب المستوى، مجمّع حسب القسم

في الأمثلة السابقة، كان لدينا دائمًا سلسلة بيانات واحدة فقط (الراتب أو عدد الموظفين). قد يكون من المثير للاهتمام أيضًا تحديد سلسلة البيانات بناءً على البيانات المتاحة.

في هذا المثال، نريد أن نرى الرواتب المجمعة مجمعة حسب القسم. علاوة على ذلك، نريد عرض البيانات مفصولة حسب مستوى الموظفين.

لتحقيق ذلك، علينا تجميع الموظفين حسب القسم وتدوير الجدول حسب المستوى. وينتج عن ذلك الجدول التالي:

القسم

عالية

منخفض

متوسط

تطوير

120,000.00

100,000.00

110,000.00

الإدارة

180,000.00

0

150,000.00

المشتريات

0

80,000.00

90

لا يدعم عنصر واجهة المستخدم الخاص بالجدول ميزة التدوير حتى الآن.

يمكن عرض هذا الجدول في شكل مخطط بياني على النحو التالي:

تكوين الرسم البياني:

يتم إنشاء قائمة ألوان المحور تلقائيًا باستخدام البيانات الموجودة داخل الجدول.

إذا تم تعيين عمود محوري، فمن الممكن فقط إضافة عمود قيمة واحد.

تكوين عمود قيمة الراتب: