متوسط لوحة المتابعة: هل يتساوى كل طلب أم كل فريق؟
قبل تكليف مطور بلوحة تعرض متوسطا، حدد ما الذي يتساوى وزنه في الحساب: كل طلب عمل أم كل يوم أم كل فريق؟ هذه أسئلة مختلفة. قد يجيب الرقم الإجمالي عن السؤال الخطأ، حتى لو كانت متوسطات الفرق المعروضة صحيحة كل على حدة.
يتناول هذا الدليل المتوسط الحسابي في تطبيق داخلي للعمل. وهو لا يحدد طريقة إعداد نتائج مالية نظامية، ولا يدعو إلى تقييم الموظفين برقم واحد. ابدأ بالقرار العملي الذي تريد أن يساعدك التقرير على اتخاذه.
حدد معنى السجل الواحد
لنفترض أن ورشة صيانة افتراضية تريد فهم المدة المسجلة لطلبات العمل المنجزة. اكتب ما الذي يعد طلبا، وما الحدث الذي يجعله منجزا، وهل المدة هي وقت العمل الفعلي أم الزمن المنقضي منذ البداية. لا تخلط القياسين تحت عنوان واحد.
اتفق على التعامل مع الطلبات التي يعاد فتحها، والطلبات الملغاة، والعمل الذي يمتد عبر حدود الفترة. تقرير الطلبات التي اكتملت هذا الشهر يختلف عن تقرير العمل الذي أُنجز خلال هذا الشهر. اجعل التعريف ظاهرا بجانب التقرير أو متاحا في شرح يسهل الوصول إليه.
ثم سمّ وحدة الوزن بوضوح. عبارة «متوسط الدقائق المسجلة لكل طلب مكتمل» أوضح من «متوسط الأداء». وإذا كان السؤال يقتضي مساواة الفرق بغض النظر عن حجمها، فقد يكون ذلك مناسبا، لكن لا تسمّ الناتج متوسط الطلب الواحد.
لا تجمع متوسطات المجموعات بلا قرار عن وزنها
في مثال حسابي مبسط عمدا، ينفذ فريق طلبين يستغرق كل منهما عشر دقائق. وينفذ فريق آخر ثمانية طلبات يستغرق كل منها ثلاثين دقيقة. المتوسط البسيط لمتوسطي الفريقين هو عشرون دقيقة. أما المتوسط عبر الطلبات العشرة كلها فهو ست وعشرون دقيقة.
لا يعني اختلاف الرقمين وجود عطل غامض. الحساب الأول يمنح الفريق الصغير والكبير الوزن نفسه، بينما يمنح الثاني كل طلب الوزن نفسه. اختر السؤال المقصود قبل اعتماد الرقم البارز في اللوحة.
اطلب من المطور الاحتفاظ بالمجموع الأساسي وعدد المشاهدات المقبولة لكل مجموعة، أو الحساب مباشرة من السجلات الفردية المطابقة للشروط. لا تجعل المتوسطات المقربة للعرض المدخل الوحيد للحساب الإجمالي. ولا ينبغي أن تتغير دلالة متوسط محدد لكل طلب لمجرد الانتقال من التجميع حسب الفريق إلى التجميع حسب اليوم.
المدة المفقودة ليست طلبا استغرق صفرا
توضح وثائق الدوال التجميعية في PostgreSQL 18 أن دالة المتوسط تستخدم المدخلات غير الخالية. كما تفرق بين عد جميع صفوف الإدخال وعد الصفوف التي تحتوي على قيمة غير خالية. هذه خصائص موثقة لقاعدة البيانات، وليست إثباتا لكيفية تخزين السجلات الناقصة في تطبيقك.
اعرض في التقرير المقترح عدد الطلبات المطابقة للشروط وعدد الطلبات التي تحتوي على مدة قابلة للاستخدام. وعند غياب المدة، قرر هل تستبعد مع تحذير واضح عن نقص التغطية، أم يمتنع التقرير عن إظهار نتيجة تبدو مكتملة. لا تضع صفرا فقط لكي يظهر الرسم البياني.
القيمة الصفرية المقاسة فعليا، والقياس المفقود، والمدة السالبة غير الصالحة تحتاج إلى قواعد منفصلة. اشرح أسباب الاستبعاد وحدد المسؤول عن تصحيح البيانات الأصلية. اختراع قيمة تبدو معقولة ليس تصحيحا.
سمّ التقرير الفارغ بصدق
تشير وثائق PostgreSQL نفسها إلى أن جمع مجموعة بلا صفوف يعيد قيمة خالية، لا صفرا تلقائيا. يستطيع المطور عرض قيمة بديلة، لكن ينبغي أن يتبع ذلك المعنى المتفق عليه في العمل.
افصل بين عدم وجود طلبات مطابقة، ووجود طلبات بلا قياسات صالحة، وفشل تحميل البيانات. لا تمثل أي من هذه الحالات متوسطا مقاسا يساوي صفرا. وإذا عرض التطبيق نتيجة قديمة محفوظة مؤقتا، فينبغي أن تحتفظ بفترتها وبيان حداثتها، لا أن تستخدم وقت فتح الصفحة دليلا على تحديث القياسات.
اختبر الحساب الإجمالي لا شكل الرسم وحده
أدرج مثال الفريقين المختلفين في الحجم ضمن معايير القبول. تحقق من النتيجة المتوقعة عند عرض جميع الطلبات وعند تقسيمها حسب الفريق. أضف مدة مفقودة، وقياسا صفريا حقيقيا، وطلبا ملغى مستبعدا، وفترة فارغة. قارن الشاشة وملف التصدير باستخدام المرشحات نفسها.
واتفق على نطاق الصلاحيات: هل يحصل من يرى جزءا من البيانات على مؤشر يخص هذا الجزء، أم على مجموع أوسع مصرح به صراحة؟ لا تكشف السجلات المقيدة لمجرد تفسير الإجمالي.
أحضر تعريف السجل وقاعدة الوزن وسياسة البيانات المفقودة عند مناقشة تطبيق للتقارير. المتوسط المفيد له مقام معلوم ومدخلات قابلة للتفسير، وليس مجرد رسم مقنع.
المصدر وحدود الدليل
تدعم وثائق PostgreSQL 18، المقروءة في 26 أكتوبر 2026، وصف حساب المتوسط من القيم غير الخالية، واختلاف طرق العد، وسلوك التجميع الفارغ. حُسب المثال الافتراضي بصورة منفصلة. أما قواعد التقرير والصلاحيات والاختبارات فهي إرشادات لإعداد المتطلبات، لا مزايا جرى التحقق منها في تطبيق منشور.