سلام بر شما استاد محترم
در جلسه ۱۱۷ که ROLLUP را درس دادید،من متوجه تفاوت آن با Cube و Coalesce نشدم. ممن.ن میشوم راهنمایی بفرمایید.
متشکرم
سلام دوست من
CUBE یک عملگر تجمیعی در SQL است که در کنار GROUP BY استفاده میشود.
برای تهیه خلاصههای آماری (Aggregation) در تمام ترکیبهای ممکن از ستونهای گروهبندی شده.
SELECT Region, Product, SUM(Sales)
FROM SalesTable
GROUP BY CUBE (Region, Product)
این کوئری، همه ترکیبهای ممکن از Region و Product را نمایش میدهد، از جمله:
گروهبندی بر اساس Region و Product
فقط Region
فقط Product
و مجموع کل (Grand Total)
COALESCE()
تابعی در SQL Server است که اولین مقدار غیر NULL را از بین چند مقدار برمیگرداند.
SELECT COALESCE(NULL, NULL, 'Armin', 'SQL Server')
-- خروجی: 'Armin'
خیلی متشکرم که در روز تعطیل پاسخ دادید،
من در درس ۱۰۹ اینطور یادگرفته بودم که با cube میشود مقادیر یک ستون از خروجی را جمع زد (۸۳) و با Coalesce میتوان در ستون متناظر یک عنوان (Total) به این جمع داد.
در درس ۱۱۷ هم همین را یاد گرفتم اما به جای cube از ROLLUP استفاده شد.
یعنی به نظرم آمد که خروجیها یکسان هستند و متوجه تفاوت آنها نشدم.
سپاسگزارم
سلامت باشید دوست من
بطور کلی می تونیم اینجوری بگیم
ROLLUP برای گزارشهای ساختارمند (مثل سال، ماه، روز)
CUBE برای تحلیلهای چندبُعدی (مثل Pivot Table در Excel)
مورد استفاده قرار میگیره
بسیار ممنونم از شما
پاینده باشید
موفق باشید