SQL AVG() Function

🔹 تعریف

  • تابع ()AVG میانگین مقادیر یک ستون عددی را محاسبه می‌کند.

  • فقط روی ستون‌های عددی کار می‌کند (integer, decimal, float و …).

  • مقادیر NULL در محاسبه میانگین نادیده گرفته می‌شوند.

🔹 ساختار کلی

SELECT AVG(column_name) AS AverageValue FROM table_name WHERE condition;

1️⃣ مثال ساده

جدول Employees:

EmpIDNameSalary
1Ali5000
2Sara6000
3Reza5500
4Maryam6500

کوئری:

SELECT AVG(Salary) AS AvgSalary FROM Employees;

🔹 خروجی:
AvgSalary = (5000 + 6000 + 5500 + 6500) / 4 = 5750

2️⃣ میانگین با شرط (WHERE)

SELECT AVG(Salary) AS TehranAvgSalary FROM Employees WHERE City = 'Tehran';

🔹 فقط میانگین حقوق کارکنان شهر تهران را برمی‌گرداند.

3️⃣ میانگین به تفکیک گروه‌ها (GROUP BY)

SELECT Department, AVG(Salary) AS AvgDeptSalary FROM Employees GROUP BY Department;

🔹 میانگین حقوق هر دپارتمان جداگانه محاسبه می‌شود.

4️⃣ فیلتر روی میانگین‌ها (HAVING)

SELECT Department, AVG(Salary) AS AvgDeptSalary FROM Employees GROUP BY Department HAVING AVG(Salary) > 6000;

🔹 فقط دپارتمان‌هایی که میانگین حقوقشان بیشتر از ۶۰۰۰ است نمایش داده می‌شوند.

5️⃣ میانگین روی داده‌های یکتا (DISTINCT)

SELECT AVG(DISTINCT Salary) AS AvgUniqueSalary FROM Employees;

🔹 میانگین فقط مقادیر یکتا از ستون Salary محاسبه می‌شود.

🔹 نکات مهم

  • ()AVG فقط روی داده‌های عددی کار می‌کند.

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

  • می‌توان آن را با توابع دیگری مثل ()COUNT(), SUM(), MIN(), MAX ترکیب کرد.

  • خیلی پرکاربرد در گزارش‌های آماری مثل میانگین فروش، میانگین نمره دانشجوها، میانگین دمای روزانه و …

✅ خلاصه:

  • AVG(column) → محاسبه میانگین یک ستون عددی

  • AVG(DISTINCT column) → میانگین مقادیر یکتا

  • پرکاربرد همراه GROUP BY و HAVING