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

  • تسجيل الدخول عبر الفيس بوك تسجيل الدخول عبر تويتر Log In with LinkedIn Log In with Google      تسجيل دخول    
  • إنشاء حساب

صورة
- - - - -

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


3 رد (ردود) على هذا الموضوع

#1 محمد حسين محمد

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

    عضو

  • الأعضــاء
  • 13 مشاركة

تاريخ المشاركة 15 November 2008 - 08:56 PM

مالفرق بين Rollup & cube ولكم جزيل الشكر...

#2 أحمد جادو

أحمد جادو

    عضو نشط

  • الأعضــاء
  • 244 مشاركة
  • الاسم الأول:أحمد
  • اسم العائلة:جادو
  • البـلـد: Country Flag
  • المنصب الحالي:Senior Oracle Developer @ Alhasa Municipality

تاريخ المشاركة 15 November 2008 - 10:55 PM

أخي الكريم
عندما تقوم بعمل 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 فقط دون ان تجمعهما معاً


  • محمد طلعت معجب بهذا


- أحمد جادو -
Senior Oracle Developer
Alhasa
Municipality

Alhasa - Saudi Arabia


#3 comander

comander

    مشترك

  • الأعضــاء
  • 59 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 18 November 2008 - 12:45 PM

شكرا على المعلومات القيمه وجزاك الله خيرا

#4 محمد حسين محمد

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

    عضو

  • الأعضــاء
  • 13 مشاركة

تاريخ المشاركة 28 November 2008 - 10:17 PM

شكرا جزيلا لك