SQL

SQL ROLLUP

فرض کنید جدولی به نام Sales دارید که شامل ستون‌های ProductID، CategoryName، SubCategoryName و SalesAmount است. می خواهید مجموع فروش را بر اساس CategoryName و SubCategoryName تجزیه و تحلیل کنید. همچنین می خواهید مجموع کل فروش برای هر دسته و کل فروش کلی را مشاهده کنید.

در اینجا یک پرس و جو با استفاده از ROLLUP برای دستیابی به این هدف آورده شده است:

SQL

SELECT
  CategoryName,
  SubCategoryName,
  SUM(SalesAmount) AS TotalSales
FROM Sales
GROUP BY ROLLUP(CategoryName, SubCategoryName);

** خروجی:**

این پرس و جو خروجی زیر را برمی‌گرداند که مجموع فروش را در تمام سطوح گروه بندی، از کل فروش تا ترکیبات جداگانه CategoryName و SubCategoryName نشان می‌دهد:

CategoryName SubCategoryName TotalSales
Total NULL ۱۰۰۰.۰۰
Electronics NULL ۶۰۰.۰۰
Laptops ۴۰۰.۰۰
Desktops ۲۰۰.۰۰
Clothing NULL ۴۰۰.۰۰
Shirts ۲۰۰.۰۰
Pants ۲۰۰.۰۰

توضیح:

  • ROLLUP مشابه CUBE است، اما تنها سطوح سلسله مراتبی گروه بندی را برمی‌گرداند.
  • در این مثال، ROLLUP سه سطح گروه بندی را برمی‌گرداند:
    • بدون گروه بندی (مجموع کل فروش)
    • گروه بندی بر اساس CategoryName (مجموع فروش برای هر دسته)
    • گروه بندی بر اساس هر دو CategoryName و SubCategoryName (مجموع فروش برای هر زیرمجموعه)

نکات:

  • می توانید از توابع تجمعی دیگر مانند AVG، MIN و MAX به جای SUM استفاده کنید.
  • می توانید از نام مستعار برای ستون های گروه بندی شده در clause SELECT استفاده کنید.
  • می توانید از where clause برای فیلتر کردن داده ها قبل از گروه بندی استفاده کنید.

مثال با توابع تجمعی دیگر:

فرض کنید می خواهید میانگین و تعداد فروش را برای هر سطح گروه بندی، علاوه بر مجموع فروش، محاسبه کنید.

در اینجا یک پرس و جو با استفاده از ROLLUP و توابع تجمعی AVG و COUNT برای انجام این کار آورده شده است:

SQL
SELECT
  CategoryName,
  SubCategoryName,
  SUM(SalesAmount) AS TotalSales,
  AVG(SalesAmount) AS AverageSales,
  COUNT(*) AS NumberOfSales
FROM Sales
GROUP BY ROLLUP(CategoryName, SubCategoryName);

این پرس و جوی اصلاح شده خروجی بیشتری را با میانگین و تعداد فروش برای هر سطح گروه بندی ارائه می دهد.

نتیجه گیری:

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

۵/۵ ( ۱ امتیاز )
نمایش بیشتر

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا