در این قسمت از آموزش اوراکل، بعد از آشنایی با کوئری های سلسله مراتبی، قصد داریم آموزش ROLLUP و CUBE در اوراکل را یادبگیریم. این بخش از آموزش شامل دو بخش اصلی می باشد.
- شرط ROLLUP که رکوردی را نمایش می دهد و خروجی می دهد که شامل جمع کل هر گروه از رکوردهاست به علاوه رکوردهایی می باشد که شامل جمع کل نهایی تمامی گروه ها می باشد.
- شرط CUBE که رکوردهایی را نمایش می دهد و خروجی می دهد که جمع کل ترکیب چند ستون می باشد به علاوه رکوردهایی نمایش می دهد که حاصل جمع کل می باشد.
استفاده از شرط ROLLUP
دستور ROLLUP در واقع توسعه دهنده و گسترش دهنده شرط GROUP BY در نهایت رکوردی را نمایش می دهد و خروجی می دهد که شامل جمع کل هر گروه از رکوردهاست به علاوه رکوردهایی می باشد که شامل جمع کل نهایی تمامی گروه ها می باشد.
دستور GROUP BY وظیفه اش دسته بندی رکورد ها براساس مقادیر یک ستون در جدول می باشد.
مثال زیر یک نمونه ساده از شرط ROLLUP می باشد.

ارسال اطلاعلات یک ستون از جدول به ROLLUP
ما می خواهیم با استفاده از مثال بالا، از دستور Rollup استفاده کنیم.در خروجی یک رکورد علاوه بر رکورد های جدول نمایش میدهد که آن رکورد خروجی از جمع کل مقادیر ستون با استفاده از Rollup می باشد.

ارسال اطلاعلات بیش از یک ستون از جدول به ROLLUP
شما می توانید اطلاعات بیش از یک ستون را به ROLLUP ارسال کنید که نتیجه آن این است که رکورد های دسته بندی شده براساس ستونی که Rollup شده می تواند محاسبه کرده و جمع کل کرده و در یک رکورد اضافه به ازای هر دسته از رکوردها محاسبه و نمایش می دهد.

تغییر موقعیت و جایگاه ستوهای پاس داده شده به ROLLUP
اگر در مثال بالا ما جایگاه و موقعیت ستون های پاس داده شده به ROLLUP را عوض کنیم تمامی ساختار نمایش رکورد ها و محاسبات و جمع کل براساس دسته بندی رکورد تغییر خواهد کرد.

استفاده از Aggregate Functions و شرط ROLLUP
شما در کوئری های خود می تواند از تمامی توابع Aggregate Functions به همراه شرط ROLLUP استفاده کنید . مانند مثال زیر

استفاده از شرط CUBE
در ادامه آموزش ROLLUP و CUBE در اوراکل ، شرط CUBE خیلی شبیه شرط ROLLUP می باشد با تقاوت که در CUBE زیر مجموع ها را محاسبه می کند یعنی رکورد هایی که از محاسبه گروه هایی از رکورد هایی که از group by ایجاد شده است را با هم جمع می کند .
جعع کلی که برابر با مجموع رکوردهای جمعی حاصل از محاسبات رکورد های هر گروه می باشد.

آموزش آوراکل در مورد مطلب : ROLLUP و CUBE