نقش توابع تجمیعی Aggregate Functions در SQL چیست

خلاصه
1404/10/10

توابع تجمیعی (Aggregate Functions) در SQL برای انجام محاسبات بر روی مجموعه‌ای از مقادیر و بازگشت یک نتیجه واحد استفاده می‌شوند. این توابع معمولاً در ترکیب با دستور `GROUP BY` ب

نقش توابع تجمیعی Aggregate Functions در SQL چیست

توابع تجمیعی (Aggregate Functions) در SQL برای انجام محاسبات بر روی مجموعه‌ای از مقادیر و بازگشت یک نتیجه واحد استفاده می‌شوند. این توابع معمولاً در ترکیب با دستور `GROUP BY` برای تجزیه و تحلیل داده‌ها در گروه‌های مختلف به کار می‌روند.

### **توابع تجمیعی رایج در SQL:**

1. **`COUNT()`**
- تعداد ردیف‌های یک ستون یا مجموعه‌ای از ردیف‌ها را برمی‌گرداند.
- مثال:
```sql
SELECT COUNT(*) FROM Customers; -- تعداد کل مشتریان
SELECT COUNT(DISTINCT Country) FROM Customers; -- تعداد کشورهای منحصر به فرد
```

2. **`SUM()`**
- مجموع مقادیر یک ستون عددی را محاسبه می‌کند.
- مثال:
```sql
SELECT SUM(Price) FROM Products; -- مجموع قیمت تمام محصولات
```

3. **`AVG()`**
- میانگین مقادیر یک ستون عددی را محاسبه می‌کند.
- مثال:
```sql
SELECT AVG(Salary) FROM Employees; -- میانگین حقوق کارکنان
```

4. **`MIN()` و `MAX()`**
- کمترین و بیشترین مقدار در یک ستون را برمی‌گردانند.
- مثال:
```sql
SELECT MIN(Price), MAX(Price) FROM Products; -- ارزان‌ترین و گران‌ترین محصول
```

5. **`GROUP_CONCAT()` (در MySQL)**
- مقادیر یک ستون را در یک رشته ترکیب می‌کند (در SQL Server از `STRING_AGG` و در PostgreSQL از `STRING_AGG` یا `ARRAY_AGG` استفاده می‌شود).
- مثال:
```sql
SELECT GROUP_CONCAT(Name) FROM Employees; -- لیست نام کارکنان به صورت رشته
```

### **استفاده از `GROUP BY` با توابع تجمیعی**
وقتی می‌خواهید محاسبات را بر روی گروه‌های مختلف انجام دهید، از `GROUP BY` استفاده می‌کنید.
مثال:
```sql
SELECT Department, AVG(Salary)
FROM Employees
GROUP BY Department; -- میانگین حقوق در هر بخش
```

### **فیلتر کردن نتایج با `HAVING`**
برای فیلتر کردن نتایج توابع تجمیعی (نه ردیف‌های فردی)، از `HAVING` استفاده می‌شود.
مثال:
```sql
SELECT Department, AVG(Salary)
FROM Employees
GROUP BY Department
HAVING AVG(Salary) > 50000; -- فقط بخش‌هایی با میانگین حقوق بیش از 50000
```

### **کاربردهای اصلی توابع تجمیعی:**
- گزارش‌گیری و تحلیل داده‌ها
- محاسبه آمارهای کلی (مانند مجموع، میانگین، تعداد)
- گروه‌بندی و دسته‌بندی داده‌ها
- فیلتر کردن نتایج بر اساس محاسبات تجمیعی

این توابع در پایگاه‌های داده مختلف مانند **MySQL، PostgreSQL، SQL Server، Oracle** و **SQLite** پشتیبانی می‌شوند، اما ممکن است برخی تفاوت‌های کوچک در نحوه استفاده داشته باشند.