نقش توابع تجمیعی Aggregate Functions در SQL چیست
خلاصه
1404/10/10
توابع تجمیعی (Aggregate Functions) در SQL برای انجام محاسبات بر روی مجموعهای از مقادیر و بازگشت یک نتیجه واحد استفاده میشوند. این توابع معمولاً در ترکیب با دستور `GROUP BY` ب
توابع تجمیعی (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** پشتیبانی میشوند، اما ممکن است برخی تفاوتهای کوچک در نحوه استفاده داشته باشند.
برخی از محصولات شرکت مهندسی آبان رایان البرز
سایر مقالات آموزشی شرکت نرم افزاری آبان رایان البرز :
- ایندکسهای ترکیبی در پایگاه داده چه هستند
- چگونه در جاوا یک فایل متنی را بخوانیم
- تفاوت بین روش بازگشتی و تکراری چیست
- نقش ماژولار بودن در توسعه نرمافزار چیست
- HashMap در جاوا چه کاربردی دارد
- تفاوت بین حافظه استاتیک و دینامیک چیست
- چه زمانی از حلقه while به جای for استفاده میشود
- مفهوم Dependency Injection چیست
- چگونه یک پروژه نرمافزاری را مستند کنیم
- واحد تست چیست و چگونه طراحی میشود
- فایده استفاده از Breakpoint در اشکالزدایی چیست
- الگوریتم مرتبسازی سریع Quick Sort چگونه عمل میکند
- اصول اولیه طراحی فرمهای ورودی در نرمافزار چیست
- چگونه میتوان در SQL چند جدول را همزمان کوئری گرفت
- تفاوت بین int و float در زبانهای برنامهنویسی چیست
- کامپایل در برنامهنویسی چه نقشی دارد