• 1404/04/27

تفاوت ROLLUP با Cube و Coalesce :

سلام بر شما استاد محترم

در جلسه ۱۱۷ که ROLLUP را درس دادید،‌من متوجه تفاوت آن با Cube و Coalesce نشدم. ممن.ن می‌شوم راهنمایی بفرمایید.

 

متشکرم

  • 1404/04/27
  • ساعت 17:30

سلام دوست من 

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'

 

 

 


  • 1404/04/27
  • ساعت 22:00

خیلی متشکرم که در روز تعطیل پاسخ دادید،

من در درس ۱۰۹ اینطور یادگرفته بودم که با cube می‌شود مقادیر یک ستون از خروجی را جمع زد (۸۳) و با Coalesce می‌توان در ستون متناظر یک عنوان (Total) به این جمع داد.

در درس ۱۱۷ هم همین را یاد گرفتم اما به جای cube از ROLLUP استفاده شد. 

یعنی به نظرم آمد که خروجی‌ها یکسان هستند و متوجه تفاوت آن‌ها نشدم.

سپاسگزارم


  • 1404/04/28
  • ساعت 17:02

سلامت باشید دوست من 
بطور کلی می تونیم اینجوری بگیم
 ROLLUP برای گزارش‌های ساختارمند (مثل سال، ماه، روز)
 CUBE برای تحلیل‌های چندبُعدی (مثل Pivot Table در  Excel)
مورد استفاده قرار میگیره 

 

 


  • 1404/04/28
  • ساعت 17:28

بسیار ممنونم از شما

پاینده باشید


  • 1404/04/28
  • ساعت 19:12

موفق باشید


logo-enamadlogo-samandehi