الانتقال إلى المحتوى

مالفرق بين Rollup & Cube


محمد حسين محمد

Recommended Posts

أخي الكريم


عندما تقوم بعمل group by عند اي استعلام يمكنك استخدام أحد هذه الدوال المساعدة وهي rollup , cube , grouping sets
ولمعرفة الفرق بينهم سنفترض اننا نريد الاستعلام عن مجموع مرتبات الموظفين وفقاً للوظائف jobs والأقسام deptno من جدول emp
فإن الطبيعي ان يكون الاستعلام
select deptno , job , sum(sal) from emp group by (deptno , job)
order by deptno , job;
وهنا النتيجة ستكون مجموع المرتبات لكل قسم مع كل وظيفة

فإذا أدخلت هنا rollup ليصبح الاستعلام
group by rollup (deptno , job)

فسوف يتم التنفيذ على مرحلتين
الأولى كالسابقة تماماً
ثم سيتم عمل group by (deptno ) فقط
ثم إجمالي كلي أي كأنه بدون grouping

بمعنى أن rollup يقوم بعمل فرز تصاعدي درجة درجة

أما بالنسبة لcube فإنها تقوم بعمل كل التباديل المختلفة
فبالنسبة للمثال السابق فإنها ستنفذ نفس عمل rollup بالإضافة إلى group by (job )

أما بالنسبة لgrouping sets فإنها تقوم بعمل grouping بالنسبة لdeptno فقط وبالنسبة لjob فقط دون ان تجمعهما معاً

رابط هذا التعليق
شارك

  • بعد 2 أسابيع...

انضم إلى المناقشة

يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.

زائر
أضف رد على هذا الموضوع...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   تمت استعادة المحتوى السابق الخاص بك.   مسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

جاري التحميل
×
×
  • أضف...

برجاء الإنتباه

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