قد يبدو جمع عمودين داخل SUM مساويا لجمع مجموع كل عمود، لكن القيم المفقودة قد تغير النتيجة. في التعبير a + b، تصبح نتيجة الصف NULL إذا كان أحد الطرفين مفقودا. عندها تتجاهل SUM التعبير كله لذلك الصف، بما فيه الطرف الذي كانت قيمته معروفة.
مثال
SELECT SUM(salary + bonus) AS combined_total,
SUM(salary) + SUM(bonus) AS separate_total
FROM employees;
أما جمع العمودين بصورة منفصلة فيسمح لكل قيمة معروفة بالمشاركة في مجموع عمودها. ومع ذلك، إذا كان أحد العمودين مفقودا بالكامل، فقد يكون مجموعه NULL، فتكون نتيجة إضافة المجموعين مفقودة أيضا.
إذا كان المعنى المطلوب يعتبر كل قيمة مفقودة صفرا، يمكن كتابة SUM(COALESCE(salary, 0) + COALESCE(bonus, 0)). يجب أن يكون هذا قرارا مقصودا في تفسير البيانات، لأن الراتب المجهول لا يعني بالضرورة راتبا يساوي صفرا.
باختصار: وجود NULL قد يجعل جمع التعبيرات قبل التجميع مختلفا عن جمع الأعمدة كل على حدة.
هل تريد تعلّم SQL خطوة بخطوة مع تمارين عملية؟ تابع مسار SQL من الأساسيات للاحتراف.