النسبة المئوية من الإجمالي
جزء من قسم ما وراء الأساسيات في رحلة 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 ستقرّب الحصص الصغيرة إلى الصفر.
التحدي
سهلالجداول والأعمدة المتاحة:
sales:category،product،revenue
لكل صف، أرجِع:
categoryproductrevenuepct_of_category: حصة المنتج من الإيرادات ضمن فئته، مقربة إلى منزلة عشرية واحدة
استخدم PARTITION BY في نافذة. رتّب حسب category، ثم حسب pct_of_category ترتيبًا تنازليًا.
جرّب بنفسك
SELECT category, product, revenue,
-- pct كحصة ضمن الفئة، استخدم PARTITION BY
FROM sales
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس ما وراء الأساسيات
6وصفات التحليل
أفضل N لكل مجموعةالنسبة المئوية من الإجماليالمجموع التراكميالاحتفاظ بصف واحد لكل مفتاحملخص - أفضل العملاءتدرّب بنفسك: Playground لـ SQL