خوش آموز درخت تو گر بار دانش بگیرد، به زیر آوری چرخ نیلوفری را
استفاده از ROLLUP در SQL Server
از شرط ROLLUP برای نمایش زیرمجموعه ها و جمع کل در result set استفاده می شود که همیشه ROLLUP همراه با Group By قرار می گیرد.
Group by نمی تواند داده ها را در چندین سطح از نتایج سلسله مراتبی را جمع کند. مثلا زیر مجموعه(یک سطح از سلسله مراتب) و جمع کل (دو سطح از سلسله مراتب) در Result set نمایش دهد. به عنوان مثال ما می توانیم جمع کل خرید برای هر مورد(هر سطح از سلسله مراتب) را محاسبه کنیم. اما چیزی که در خط اول توضیح داده شد، با فقط GROUP BY امکان پذیر نخواهد بود. در چنین حالتی ROLLUP به کمک ما خواهد آمد و به چیزی که می خواهیم می توانیم برسیم.
Syntax استفاده از rollup بصورت زیر می باشد:
لطفا به مثال زیر توجه کنید:
همانطور که در بالا مشاهده می کنید، Group By فقط مقدار کل خرید برای هر کالا یا آیتم را نمایش می دهد. جمع کل خرید را نمایش دهد.
ولی همینکه GROUP BY با ROLLUP ترکیب شود، جمع کل خرید را هم در Result set می توانید مشاهده کنید.
ردیف Null را هم با مثلا نام Total می توانید جایگزین کنید نام معنی داری بدان تخصیص داده اید و بهتر می توان متوجه خروجی Result set شد.
برای نمایش کل خریدها هر کالا در هر سال و جمع کل همه آیتم برای هر آیتم، بصورت زیر می توانید اقدام کنید:
Group by نمی تواند داده ها را در چندین سطح از نتایج سلسله مراتبی را جمع کند. مثلا زیر مجموعه(یک سطح از سلسله مراتب) و جمع کل (دو سطح از سلسله مراتب) در Result set نمایش دهد. به عنوان مثال ما می توانیم جمع کل خرید برای هر مورد(هر سطح از سلسله مراتب) را محاسبه کنیم. اما چیزی که در خط اول توضیح داده شد، با فقط GROUP BY امکان پذیر نخواهد بود. در چنین حالتی ROLLUP به کمک ما خواهد آمد و به چیزی که می خواهیم می توانیم برسیم.
Syntax استفاده از rollup بصورت زیر می باشد:
SELECT
column1 , column2 , .. , aggregate_function (columnname)
FROM tablename
GROUP BY ROLLUP (ccolumn1 , Column2 ,..., );
لطفا به مثال زیر توجه کنید:
Select Item , Sum(Item_Count) as Total from itemdetails
Group by Item
همانطور که در بالا مشاهده می کنید، Group By فقط مقدار کل خرید برای هر کالا یا آیتم را نمایش می دهد. جمع کل خرید را نمایش دهد.
ولی همینکه GROUP BY با ROLLUP ترکیب شود، جمع کل خرید را هم در Result set می توانید مشاهده کنید.
Select Item , Sum(Item_Count) as Total
From itemdetails
Group by ROLLUP (Item)
ردیف Null را هم با مثلا نام Total می توانید جایگزین کنید نام معنی داری بدان تخصیص داده اید و بهتر می توان متوجه خروجی Result set شد.
Select Coalesce (Item ,'TOTAL' ) as Item, Sum(Item_Count) as Total
From itemdetails
Group by ROLLUP (Item)
برای نمایش کل خریدها هر کالا در هر سال و جمع کل همه آیتم برای هر آیتم، بصورت زیر می توانید اقدام کنید:
Select coalesce( Item ,'GRAND TOTAL' ) As Item,
Coalesce( CAST( Year (ItemPurchasedDate) As VARCHAR) ,'TOTAL') as Year
, Sum(Item_Count) as Total From itemdetails
Group By RollUp (Item,Year(ItemPurchasedDate) )
نمایش دیدگاه ها (0 دیدگاه)
دیدگاه خود را ثبت کنید: