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

النسبة المئوية من الإجمالي

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

حصة كل صف من الإجمالي هي من الاستخدامات الكلاسيكية لدالة النافذة: اقسم قيمة الصف على SUM للعمود نفسه عبر النافذة بأكملها.

SELECT product, revenue,
       revenue * 100.0 / SUM(revenue) OVER () AS pct
FROM sales

تعني OVER () الفارغة «مجموعة النتائج بأكملها». أضف PARTITION BY لحساب الحصة ضمن مجموعة بدلاً من ذلك (مثلًا، OVER (PARTITION BY category) لحساب الحصة ضمن كل category).

اضرب في 100.0 (وليس 100) حتى تظل القسمة عائمة. وإلا فإن القسمة الصحيحة في SQLite ستقرّب الحصص الصغيرة إلى الصفر.

challenge icon

التحدي

سهل

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

  • sales: category، product، revenue

لكل صف، أرجِع:

  • category
  • product
  • revenue
  • pct_of_category: حصة المنتج من الإيرادات ضمن فئته، مقربة إلى منزلة عشرية واحدة

استخدم PARTITION BY في نافذة. رتّب حسب category، ثم حسب pct_of_category ترتيبًا تنازليًا.

جرّب بنفسك

SELECT category, product, revenue,
       -- pct كحصة ضمن الفئة، استخدم PARTITION BY
FROM sales
quiz iconاختبر نفسك

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

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

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