خوش آموز درخت تو گر بار دانش بگیرد، به زیر آوری چرخ نیلوفری را


تابع CUBE در SQL Server

تابع CUBE در SQL Server
تابع CUBE برای محاسبه زیر مجموعه ها و جمع کل برای همه ترکیبات ستون های گروه بندی مشخص شده در GROUP BY مورد استفاده قرار می گیرد. تابع CUBE بسیار شبیه به ROLLUP می باشد و است که محاسبه زیرمجموعه ها و جمع کل ها برای مجموعه ای از ستون ها را انجام میدهد. CUBE از عملکردی یکسان مانند ROLLUP استفاده می کند اما جمع زیر مجموعه ها و جمع کل را برای کلیه ستون های گروه بندی و مشخص شده در GROUP BY را بازمی گرداند.

سیستم یکپارچۀ سازمانی راهکار
Syntax استفاده از آن به فرم زیر می باشد:



SELECT
col1 , col2 , AggregateFunction(col3)
FROM
tablename
GROUP BY CUBE( col1 , col2);

در ادامه به مثالی از CUBE خواهیم پرداخت. برای مثال جدولی به نام ProdCatLink را درنظر بگیرید که رکوردهای را در شکل زیر مشاهده می کنید.

تابع CUBE در SQL Server
فرض کنید ، اگر مجبور شویم مقدار کل را نیز نمایش دهیم ، از کوئری زیر استفاده می کنیم.

SELECT Vendor, SUM (Quantity) AS TotalQty FROM ProdCatLink

GROUP BY Vendor

تابع CUBE در SQL Server
حالا بخواهیم جمع کل vendor ها را در کوئری نشان دهیم، از تابع CUBE در GROUP BY استفاده می کنیم.

SELECT Vendor, SUM (Quantity) AS TotalQty FROM ProdCatLink

GROUP BY CUBE(vendor)

تابع CUBE در SQL Server
همانطور که مشاهده کردید، تابع CUBE، جمع کل را برای vendor ها در ردیف Null قرار داد و ما با تغییر Null به Total نام این ردیف را مناسب تر می کنیم:

SELECT  COALESCE(Vendor,'TOTAL') as vendor , SUM (Quantity) AS TotalQty
FROM ProdCatLink
GROUP BY CUBE(vendor)

تابع CUBE در SQL Server
به منظور نمایش فروش کل vendor ها و category کالاها، از کوئری زیر استفاده می کنیم:

SELECT Vendor, Category, SUM (Quantity) AS TotalQty FROM ProdCatLink

GROUP BY Vendor, Category

در این مثال نیازی به استفاده از CUBE نبوده است ولی در صورت مسئله بعدی بدان نیاز خواهیم داشت.

تابع CUBE در SQL Server
برای نمایش جمع کل زیر مجموعه vendor ها و category کالا، از CUBE به فرم زیر استفاده می کنیم:

SELECT Vendor, Category, SUM (Quantity) AS TotalQty FROM ProdCatLink

GROUP BY CUBE(Vendor, Category) ORDER BY vendor, category

تابع CUBE در SQL Server
در Result set فوق، در ردیف اول، جمع کل را مشاهده می کنید. در ستون دوم و دوم جمع کل vendor ها بر اساس category را مشاهده می کنید.
ستون 4 و 7 و 10، جمع کل بر اساس vendor را نشان می دهد.
ستون 6 و 6 8 و 9 و 11 و 12، جمع کل بر اساس vendor و category را نشان میدهد.
در آخر فقط به این نکته توجه داشته باشید که فیلدهایی که در Select قید می کنید، در CUBE هم باید وارد شوند در غیر اینصورت خطا دریافت خواهید کرد. به مثال زیر دقت کنید. به دلیل قید نکردن فیلد category، خطا نمایش داده شد:

SELECT Vendor, Category, SUM (Quantity) AS TotalQty FROM ProdCatLink

GROUP BY CUBE(Vendor) ORDER BY vendor, category

تابع CUBE در SQL Server

نمایش دیدگاه ها (0 دیدگاه)

دیدگاه خود را ثبت کنید:

انتخاب تصویر ویرایش حذف
توجه! حداکثر حجم مجاز برای تصویر 500 کیلوبایت می باشد.


دسته بندی مطالب خوش آموز