Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

SUM مع CASE

جزء من قسم ما وراء الأساسيات في رحلة SQL على Coddy — الدرس 13 من 27.

تعمل الفكرة نفسها مع SUM: وهي أكثر مرونة. يمكن لـ CASE إرجاع 1 للصفوف المتطابقة و 0 لكل شيء آخر، أو يمكنها إرجاع أي قيمة عددية لوزن الصفوف بشكل مختلف.

SELECT
    SUM(CASE WHEN status = 'active' THEN 1 ELSE 0 END) AS active_count,
    SUM(CASE WHEN plan = 'pro' THEN amount ELSE 0 END) AS pro_revenue
FROM users

SUM(CASE … THEN 1 ELSE 0 END) و COUNT(CASE … THEN 1 END) يعطيان نفس النتيجة للعد؛ اختر الأسلوب الذي يفضله فريقك.

challenge icon

التحدي

سهل

الجداول والأعمدة المتاحة:

  • <strong>transactions</strong>: <strong>id</strong>, <strong>category</strong>, <strong>type</strong>, <strong>amount</strong>

type هو إما 'sale' أو 'refund'. لكل category قم بإرجاع:

  • category
  • net_revenue: مجموع مبالغ البيع ناقص مجموع مبالغ الاسترداد

احسب net_revenue في تعبير SUM(CASE …) واحد حيث تساهم المرتجعات بمبالغها كأرقام سالبة. رتب حسب net_revenue تنازلياً.

جرّب بنفسك

SELECT category,
       -- SUM(CASE ...) واحدة حيث تُحسب المبالغ المستردة كقيم سالبة
FROM transactions
GROUP BY category
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس ما وراء الأساسيات