آموزش

توابع جمع‌آوری پیشرفته در SQL

توابع جمع‌آوری پیشرفته در SQL

توابع جمع‌آوری پیشرفته در SQL مجموعه‌ای از توابع قدرتمند هستند که برای تجزیه و تحلیل داده‌ها و استخراج اطلاعات مفید از مجموعه داده‌های بزرگ استفاده می‌شوند. این توابع فراتر از توابع ساده جمع‌آوری مانند SUM، AVG و COUNT عمل می‌کنند و امکان محاسبات پیچیده‌تر و انعطاف‌پذیرتر را فراهم می‌کنند.

برخی از توابع جمع‌آوری پیشرفته رایج:

  • GROUP BY: برای گروه بندی داده‌ها بر اساس یک یا چند ستون و محاسبه مقادیر جداگانه برای هر گروه.
  • HAVING: برای فیلتر کردن گروه‌ها بر اساس مقادیر محاسبه شده توسط توابع جمع‌آوری.
  • WINDOW FUNCTIONS: برای محاسبه مقادیر برای هر رکورد در یک گروه، با در نظر گرفتن رکوردهای قبلی و بعدی.
  • CORRELATED SUBQUERIES: برای مقایسه مقادیر یک رکورد با مقادیر رکوردهای دیگر در همان جدول.

مثال:

فرض کنید می‌خواهیم میانگین حقوق کارمندانی که در هر دپارتمان کار می‌کنند را محاسبه کنیم و سپس دپارتمان‌هایی را که میانگین حقوق آنها بالاتر از میانگین کل حقوق شرکت است، پیدا کنیم.

راه‌حل:

SQL
SELECT Department, AVG(Salary) AS AverageSalary
FROM Employees
GROUP BY Department
HAVING AverageSalary > (
  SELECT AVG(Salary)
  FROM Employees
);

توضیح:

  • این پرس و جو از دو تابع جمع‌آوری پیشرفته استفاده می‌کند:
    • GROUP BY: برای گروه بندی کارمندان بر اساس دپارتمان.
    • HAVING: برای فیلتر کردن دپارتمان‌هایی که میانگین حقوق آنها از میانگین کل حقوق شرکت بیشتر است.
  • تابع AVG در داخل GROUP BY میانگین حقوق را برای هر دپارتمان محاسبه می‌کند.
  • تابع AVG در داخل HAVING میانگین کل حقوق شرکت را محاسبه می‌کند.
  • فقط دپارتمان‌هایی که میانگین حقوق آنها از میانگین کل حقوق شرکت بیشتر است، نمایش داده می‌شوند.

کاربرد:

توابع جمع‌آوری پیشرفته در سناریوهای مختلفی از جمله موارد زیر کاربرد دارند:

  • تجزیه و تحلیل داده‌های فروش:
    • برای مثال، می‌توانید از توابع جمع‌آوری پیشرفته برای محاسبه میانگین فروش، مجموع فروش و سود هر محصول در هر منطقه استفاده کنید.
  • تجزیه و تحلیل داده‌های مشتری:
    • برای مثال، می‌توانید از توابع جمع‌آوری پیشرفته برای محاسبه میانگین سن، جنسیت و محل سکونت مشتریان در هر گروه سنی استفاده کنید.
  • تجزیه و تحلیل داده‌های علمی:
    • برای مثال، می‌توانید از توابع جمع‌آوری پیشرفته برای محاسبه میانگین، واریانس و انحراف معیار داده‌های آزمایشگاهی استفاده کنید.

نکات:

  • توابع جمع‌آوری پیشرفته می‌توانند پیچیده باشند.
  • قبل از استفاده از آنها، درک نحوه عملکرد آنها و نوع داده‌های خروجی آنها مهم است.
  • برای اطلاعات بیشتر در مورد توابع جمع‌آوری پیشرفته، می‌توانید به مستندات SQL یا منابع آموزشی آنلاین مراجعه کنید.

مثال‌های دیگر:

  • یافتن 10 محصولی که در 3 ماه گذشته بیشترین فروش را داشته‌اند:
SQL
SELECT ProductID, ProductName, SUM(SalesQuantity) AS TotalSales
FROM Sales
WHERE SalesDate > DATEADD(MONTH, -3, GETDATE())
GROUP BY ProductID
ORDER BY TotalSales DESC
LIMIT 10;
  • یافتن مشتریانی که در هر دو سال 2022 و 2023 خرید کرده‌اند:
SQL
SELECT CustomerID, Name
FROM Customers
WHERE EXISTS (
  SELECT *
  FROM Sales
  WHERE CustomerID = Customers.CustomerID
  AND SalesDate BETWEEN '2022-01-01' AND '2022-12-31'
)
AND EXISTS (
  SELECT *
  FROM Sales
  WHERE CustomerID = Customers.CustomerID
  AND SalesDate BETWEEN '2023-01-01' AND '2023-12-31'
);

نمایش بیشتر

نوشته‌های مشابه

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

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

همچنین ببینید
بستن
دکمه بازگشت به بالا