SQL Aggregate Functions

🔹 توابع تجمعی چیستند؟

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

🔹 توابع اصلی

1️⃣ ()COUNT → شمارش رکوردها

SELECT COUNT(*) AS TotalCustomers FROM Customers;

🔹 تعداد کل مشتری‌ها را برمی‌گرداند.

با شرط:

SELECT COUNT(CustomerID) AS TehranCustomers FROM Customers WHERE City = 'Tehran';

2️⃣ ()SUM → جمع مقادیر

SELECT SUM(Amount) AS TotalSales FROM Orders;

🔹 جمع کل فروش‌ها را حساب می‌کند.

3️⃣ ()AVG → میانگین

SELECT AVG(Salary) AS AvgSalary FROM Employees;

🔹 میانگین حقوق کارکنان را برمی‌گرداند.

4️⃣ ()MIN → کمترین مقدار

SELECT MIN(Salary) AS LowestSalary FROM Employees;

5️⃣ ()MAX → بیشترین مقدار

SELECT MAX(Salary) AS HighestSalary FROM Employees;

🔹 ترکیب با GROUP BY

برای محاسبه روی گروه‌های مختلف داده استفاده می‌شود.

مثال:

SELECT City, COUNT(CustomerID) AS NumCustomers FROM Customers GROUP BY City;

🔹 تعداد مشتریان در هر شهر را برمی‌گرداند.

🔹 ترکیب با HAVING

چون WHERE روی داده خام عمل می‌کند، برای فیلتر کردن نتایج Aggregate باید از HAVING استفاده کنیم.

مثال:

SELECT City, COUNT(CustomerID) AS NumCustomers FROM Customers GROUP BY City HAVING COUNT(CustomerID) > 5;

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

🔹 مثال واقعی

جدول Orders:

OrderIDCustomerIDAmount
11100
22200
31150
43300

کوئری:

SELECT CustomerID, COUNT(OrderID) AS TotalOrders, SUM(Amount) AS TotalAmount, AVG(Amount) AS AvgAmount FROM Orders GROUP BY CustomerID;

🔹 خروجی:

CustomerIDTotalOrdersTotalAmountAvgAmount
12250125
21200200
31300300


✅ پس:

  • COUNT → تعداد

  • SUM → جمع

  • AVG → میانگین

  • MIN → کمترین مقدار

  • MAX → بیشترین مقدار