شبكة تعلم مع ناو

كيف أحسب متوسط السعر المرجح بالكمية في SQL؟

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

مثال

SELECT SUM(unit_price * quantity)
       / NULLIF(SUM(quantity), 0) AS weighted_price
FROM orders;

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

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

باختصار: المتوسط المرجح بالكمية يساوي مجموع قيمة الوحدات مقسوما على مجموع عددها.

هل تريد تعلّم SQL خطوة بخطوة مع تمارين عملية؟ تابع مسار SQL من الأساسيات للاحتراف.

اختبر نفسك

خمسة أسئلة سريعة، مع الإجابة والشرح بعد كل سؤال.