تابع ()AVG در SQL برای محاسبه میانگین مقدار یک ستون عددی استفاده می‌شود. این تابع مقادیر NULL را نادیده می‌گیرد و میانگین فقط از مقادیر معتبر حساب می‌شود.


🔹 نحوه استفاده از ()AVG

فرض کنید می‌خواهیم میانگین قیمت همه محصولات را محاسبه کنیم. برای این کار از کوئری زیر استفاده می‌کنیم:

SELECT AVG(Price)
FROM Products;

💡 نکته: اگر مقدار NULL در ستون باشد، در محاسبه میانگین در نظر گرفته نمی‌شود.


🛠 ساختار کلی تابع ()AVG

SELECT AVG(column_name)
FROM table_name
WHERE condition;

در کد بالا
🔹 column_name: نام ستونی که می‌خواهیم میانگین آن را محاسبه کنیم.
🔹 table_name: نام جدول موردنظر.
🔹 condition: شرطی که مشخص می‌کند کدام سطرها در میانگین‌گیری در نظر گرفته شوند (اختیاری).


📊 مثال عملی – جدول محصولات

در اینجا نمونه‌ای از جدول Products که برای مثال‌ها استفاده شده است، آورده شده است:

ProductIDProductNameSupplierIDCategoryIDUnitPrice
1Chais1110 boxes x 20 bags$18
2Chang1124 - 12 oz bottles$19
3Aniseed Syrup1212 - 550 ml bottles$10
4Chef Anton's Cajun Seasoning2248 - 6 oz jars$22
5Chef Anton's Gumbo Mix2236 boxes$21.35

🔍 میانگین‌گیری با شرط (WHERE)

گاهی اوقات نیاز داریم فقط میانگین یک دسته خاص از داده‌ها را بگیریم. در این مثال، میانگین قیمت محصولاتی که در دسته ۱ قرار دارند را محاسبه می‌کنیم:

SELECT AVG(Price)
FROM Products
WHERE CategoryID = 1;

🏷 استفاده از Alias (نام‌گذاری ستون خروجی)

برای خواناتر کردن خروجی، می‌توانیم با استفاده از AS به ستون میانگین نام بدهیم:

SELECT AVG(Price) AS [average price]
FROM Products;

🔹 خروجی این کوئری ستونی با نام “average price” خواهد داشت.


📈 یافتن محصولات گران‌تر از میانگین قیمت

می‌توانیم محصولاتی را که قیمتشان بالاتر از میانگین قیمت تمام محصولات است پیدا کنیم. برای این کار از زیر کوئری (Subquery) استفاده می‌کنیم:

SELECT * FROM Products
WHERE Price > (SELECT AVG(Price) FROM Products);

💡 نکته: این کوئری ابتدا میانگین قیمت را محاسبه می‌کند و سپس محصولاتی که قیمت بالاتری دارند را نمایش می‌دهد.


🛍 میانگین قیمت بر اساس دسته‌بندی (GROUP BY)

اگر بخواهیم میانگین قیمت هر دسته از محصولات را به‌طور جداگانه ببینیم، می‌توانیم از GROUP BY استفاده کنیم:

SELECT AVG(Price) AS AveragePrice, CategoryID
FROM Products
GROUP BY CategoryID;

🔹 این کوئری داده‌ها را بر اساس CategoryID گروه‌بندی می‌کند و میانگین قیمت هر گروه را نمایش می‌دهد.


🚀 جمع‌بندی

  • تابع ()AVG میانگین مقادیر عددی یک ستون را محاسبه می‌کند.
  • مقدارهای NULL در محاسبه میانگین در نظر گرفته نمی‌شوند.
  • می‌توان با WHERE فقط داده‌های خاصی را میانگین گرفت.
  • با AS می‌توان ستون خروجی را نام‌گذاری کرد.
  • با استفاده از GROUP BY می‌توان میانگین را برای هر دسته از داده‌ها جداگانه محاسبه کرد.

تمرین:
یک کوئری بنویسید که میانگین قیمت محصولات را برای دسته ۲ محاسبه کند و ستون خروجی را “میانگین قیمت دسته ۲” نام‌گذاری کند. 🚀