Sokan Academy

در اینجا نمونه هایی از نحوه استفاده از Window Function های ()SUM() ، MIN() ، MAX و ()AVG در SQL آورده شده است:

فرض کنید جدولی به نام sales با ستون های Sale_Date و Sales_Amount دارید. شما می خواهید مقادیر مختلف کل را در یک پنجره 3 روزه برای هر تاریخ فروش محاسبه کنید.

مثال 1: استفاده از ()SUM

SELECT
  Sale_Date,
  Sales_Amount,
  SUM(Sales_Amount) OVER(ORDER BY Sale_Date ROWS BETWEEN 2 PRECEDING AND CURRENT ROW) AS Rolling_Sum
FROM sales;

در این مثال، Window Function SUM(Sales_Amount) مجموع مبالغ فروش را برای هر تاریخ فروش محاسبه می‌کند. این تابع با استفاده از ROWS BETWEEN 2 PRECEDING AND CURRENT ROW (مشخصات قاب ردیف های بین 2 ردیف قبلی و فعلی)، یک پنجره نورد 3 روزه (3-day rolling window) را تعریف می کند.

مثال 2: استفاده از ()AVG

SELECT
  Sale_Date,
  Sales_Amount,
  AVG(Sales_Amount) OVER(ORDER BY Sale_Date ROWS BETWEEN 2 PRECEDING AND CURRENT ROW) AS Rolling_Avg
FROM sales;

در اینجا، Window Function  AVG(Sales_Amount) میانگین چرخشی مبالغ فروش را در همان پنجره 3 روزه محاسبه می کند.

مثال 3: استفاده از ()MAX

SELECT
  Sale_Date,
  Sales_Amount,
  MAX(Sales_Amount) OVER(ORDER BY Sale_Date ROWS BETWEEN 2 PRECEDING AND CURRENT ROW) AS Max_In_Rolling_Window
FROM sales;

در این حالت، Window Function  MAX(Sales_Amount) حداکثر مقدار فروش را در پنجره 3 روزه محاسبه می کند.

مثال 4: استفاده از ()MIN

SELECT
  Sale_Date,
  Sales_Amount,
  MIN(Sales_Amount) OVER(ORDER BY Sale_Date ROWS BETWEEN 2 PRECEDING AND CURRENT ROW) AS Min_In_Rolling_Window
FROM sales;

در این مثال Window Function MIN(Sales_Amount) حداقل مقدار فروش را در پنجره چرخشی 3 روزه محاسبه می کند.

 

این مثال‌ها نحوه استفاده از Window Functions های ()MAX() ،AVG() ،SUM و ()MIN را برای محاسبه مقادیر مختلف در یک بازه زمانی مشخص نشان می‌دهند. که به شما امکان می‌دهد محاسبات چرخشی را انجام دهید یا داده‌ها را در یک زمینه زمانی مشخص تجزیه و تحلیل کنید.

sqlتابع

sokan-academy-footer-logo
کلیه حقوق مادی و معنوی این وب‌سایت متعلق به سکان آکادمی می باشد.