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

التحدي

سهل

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

  • transactions: id، category، type، amount

يمكن أن تكون type إما 'sale' أو 'refund'. أرجِع لكل category:

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

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

جرّب بنفسك

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

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

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

تدرّب بنفسك: Playground لـ SQL