در اینجا نمونه هایی از نحوه استفاده از 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 را برای محاسبه مقادیر مختلف در یک بازه زمانی مشخص نشان میدهند. که به شما امکان میدهد محاسبات چرخشی را انجام دهید یا دادهها را در یک زمینه زمانی مشخص تجزیه و تحلیل کنید.