"

در مورد توابع Aggregate در SQL چه می‌دانید؟,مهم‌ترین توابع Aggregate در SQL,کاربردهای عملی توابع Aggregate در SQL

در مورد توابع Aggregate در SQL چه می‌دانید؟

توابع Aggregate در SQL برای محاسبه مقادیر تجمیعی مانند تعداد، مجموع، میانگین، کمترین و بیشترین داده‌ها استفاده می‌شوند.

تیم تحریریه
6
0
15 تیر 1405
لینک کوتاه

در مورد توابع Aggregate در SQL چه می‌دانید؟

در پایگاه‌های داده، حجم زیادی از اطلاعات ذخیره می‌شود و معمولاً کاربران و مدیران سیستم نیاز دارند گزارش‌ها و تحلیل‌های مختلفی از این داده‌ها استخراج کنند.
برای مثال ممکن است بخواهیم مجموع فروش یک ماه را محاسبه کنیم، میانگین حقوق کارکنان را به دست آوریم، تعداد مشتریان را بشماریم یا بیشترین و کمترین مقدار یک فیلد را پیدا کنیم.
انجام این محاسبات با استفاده از توابع Aggregate در SQL بسیار ساده و سریع امکان‌پذیر است.

توابع Aggregate یا توابع تجمعی، گروهی از توابع داخلی SQL هستند که روی مجموعه‌ای از رکوردها اعمال می‌شوند و در نهایت یک مقدار واحد را برمی‌گردانند. این توابع نقش بسیار مهمی در گزارش‌گیری، تحلیل داده‌ها و تهیه آمار از اطلاعات موجود در پایگاه داده دارند.


 


🌟 آیا می‌خواهید به یک متخصص پایگاه داده تبدیل شوید و در دنیای فناوری اطلاعات بدرخشید؟

با دوره آموزشی SQL Server ما، شما می‌توانید به راحتی و با روشی عملی، تمام مهارت‌های لازم را یاد بگیرید!

این دوره به شما آموزش می‌دهد که چگونه داده‌ها را به بهترین شکل مدیریت کنید، گزارش‌های قدرتمند بسازید و به تحلیل‌های عمیق دست یابید.

با محتوای جذاب و پروژه‌های واقعی، شما نه تنها تئوری را یاد می‌گیرید، بلکه توانایی‌های عملی خود را نیز تقویت می‌کنید.

پس فرصت را از دست ندهید! همین امروز به جمع یادگیرندگان ما بپیوندید و اولین قدم را به سوی آینده شغلی روشن‌تر بردارید!

 همین حالا شروع کنید و به دنیای داده‌ها بپیوندید!






تابع Aggregate چیست؟

توابع Aggregate مجموعه‌ای از داده‌ها را دریافت کرده و نتیجه‌ای واحد تولید می‌کنند.

برای مثال:

  • محاسبه مجموع فروش
  • شمارش تعداد کاربران
  • پیدا کردن بیشترین حقوق
  • محاسبه میانگین نمرات

این توابع روی چندین سطر اجرا می‌شوند اما فقط یک مقدار خروجی تولید می‌کنند.

 

مهم‌ترین توابع Aggregate در SQL

پنج تابع اصلی Aggregate عبارت‌اند از:

  • ()COUNT

  • ()SUM

  • ()AVG

  • ()MAX

  • ()MIN

این توابع تقریباً در تمامی سیستم‌های مدیریت پایگاه داده مانند SQL Server، MySQL، PostgreSQL و Oracle پشتیبانی می‌شوند.



مهم‌ترین توابع Aggregate در SQL

تابع COUNT

تابع COUNT برای شمارش تعداد رکوردها استفاده می‌شود.

مثال

فرض کنید جدول زیر وجود دارد:


Employees
Id  Name
1  Ali
2 Sara
3 Reza

 

برای شمارش تعداد کارکنان:

 

SELECT COUNT(*)

FROM Employees;

 

نتیجه:

 

3

COUNT روی یک ستون

SELECT COUNT(Name)

FROM Employees;

 

این دستور فقط مقادیر غیر NULL را شمارش می‌کند.

 

COUNT DISTINCT

برای شمارش مقادیر یکتا:

 

SELECT COUNT(DISTINCT City)

FROM Customers;

 

مثال:

City
Tehran
Tehran
Shiraz

 

نتیجه:

 

2

 

زیرا فقط دو شهر متفاوت وجود دارد.

 

تابع SUM

تابع SUM برای محاسبه مجموع مقادیر عددی استفاده می‌شود.

مثال

 

جدول فروش:

Product  Amount
A 100
B 200
C 300

 

 

دستور:

 

SELECT SUM(Amount)

FROM Sales;

 

نتیجه:

 

600

استفاده همراه شرط

SELECT SUM(Amount)

FROM Sales

WHERE Amount > 100;

 

نتیجه:

 

500


تابع AVG

AVG میانگین مقادیر عددی را محاسبه می‌کند.

مثال

جدول نمرات:

Student  Score
Ali  18
Sara  20
Reza  16

 

دستور:

 

SELECT AVG(Score)

FROM Students;

 

نتیجه:

 

18

میانگین حقوق کارکنان

SELECT AVG(Salary)

FROM Employees;



تابع MAX

تابع MAX بیشترین مقدار را برمی‌گرداند.

 

مثال

SELECT MAX(Salary)

FROM Employees;

 

نتیجه:

 

50000000

بیشترین قیمت محصول

SELECT MAX(Price)

FROM Products;



تابع MIN

تابع MIN کمترین مقدار را برمی‌گرداند.

مثال

SELECT MIN(Salary)

FROM Employees;

ارزان‌ترین محصول

SELECT MIN(Price)

FROM Products;


کار با GROUP BY

قدرت واقعی توابع Aggregate زمانی مشخص می‌شود که همراه GROUP BY استفاده شوند.

مثال

 

جدول فروش:

Category  Amount
Mobile  100
Mobile  200
Laptop  300
Laptop  400

 

می‌خواهیم مجموع فروش هر دسته را ببینیم.

 

SELECT

Category,

SUM(Amount)

FROM Sales

GROUP BY Category;

 

نتیجه:

Category  Total
Mobile  300
Laptop  700


AVG همراه GROUP BY

SELECT

Department,

AVG(Salary)

FROM Employees

GROUP BY Department;

 

نتیجه:

 

میانگین حقوق هر بخش محاسبه می‌شود.

 

COUNT همراه GROUP BY

SELECT

City,

COUNT(*)

FROM Customers

GROUP BY City;

 

تعداد مشتریان هر شهر نمایش داده می‌شود.

 

استفاده از HAVING

گاهی لازم است پس از گروه‌بندی، داده‌ها را فیلتر کنیم.

برای این کار از HAVING استفاده می‌شود.

مثال

SELECT

Department,

AVG(Salary)

FROM Employees

GROUP BY Department

HAVING AVG(Salary) > 30000000;

 

فقط بخش‌هایی نمایش داده می‌شوند که میانگین حقوق آن‌ها بیشتر از 30 میلیون باشد.

 

تفاوت WHERE و HAVING در SQL

  • WHERE

قبل از گروه بندی اجرا می شود.

SELECT *

FROM Employees

WHERE Salary > 10000000;
  • HAVING

بعد از گروه‌بندی اجرا می‌شود.

SELECT Department,

AVG(Salary)

FROM Employees

GROUP BY Department

HAVING AVG(Salary) > 10000000;

 

نادیده گرفتن NULL

اکثر توابع Aggregate مقادیر NULL را در محاسبات لحاظ نمی‌کنند.

مثال:

Salary
1000
2000
NULL

 

دستور:

 

SELECT AVG(Salary)

FROM Employees;

 

نتیجه:

 

1500

 

NULL در محاسبه شرکت نمی‌کند.

 

استفاده از چند Aggregate همزمان

می‌توان چندین تابع Aggregate را در یک Query استفاده کرد.

 

SELECT

COUNT(*) AS TotalEmployees,

AVG(Salary) AS AverageSalary,

MAX(Salary) AS HighestSalary,

MIN(Salary) AS LowestSalary

FROM Employees;

 

نتیجه یک گزارش کامل از اطلاعات حقوق کارکنان خواهد بود.

 

Aggregate روی تاریخ

توابع MAX و MIN روی تاریخ نیز قابل استفاده هستند.

جدیدترین سفارش

SELECT MAX(OrderDate)

FROM Orders;

قدیمی‌ترین سفارش

SELECT MIN(OrderDate)

FROM Orders;

Aggregate و Subquery

یافتن کارمند با بیشترین حقوق

SELECT *

FROM Employees

WHERE Salary =

(

SELECT MAX(Salary)

FROM Employees

);

یافتن محصول با کمترین قیمت

SELECT *

FROM Products

WHERE Price =

(

SELECT MIN(Price)

FROM Products

);



Aggregate و CASE

شمارش کارکنان فعال

SELECT

COUNT(

CASE

WHEN IsActive = 1

THEN 1

END

)

FROM Employees;

مجموع فروش موفق

SELECT

SUM(

CASE

WHEN Status='Success'

THEN Amount

ELSE 0

END

)

FROM Orders;




کاربردهای عملی توابع Aggregate در SQL

  • گزارش فروش

SELECT SUM(TotalPrice)

FROM Orders;
  • تعداد سفارشات

SELECT COUNT(*)

FROM Orders;
  • میانگین خرید مشتریان

SELECT AVG(TotalPrice)

FROM Orders;
  • بیشترین مبلغ سفارش

SELECT MAX(TotalPrice)

FROM Orders;
  • کمترین مبلغ سفارش

SELECT MIN(TotalPrice)

FROM Orders;


کاربردهای عملی توابع Aggregate در SQL


مزایای استفاده از Aggregate Functions

  • افزایش سرعت تحلیل داده‌ها

    بدون نیاز به پردازش سمت برنامه می‌توان نتایج را مستقیماً از SQL دریافت کرد.
  • کاهش حجم داده انتقالی

    به جای ارسال هزاران رکورد، فقط یک نتیجه نهایی ارسال می‌شود.
  • مناسب برای گزارش‌گیری

    تقریباً تمامی گزارش‌های مدیریتی از توابع Aggregate استفاده می‌کنند.
  • سادگی استفاده

    با چند خط SQL می‌توان محاسبات پیچیده را انجام داد.



مزایای استفاده از Aggregate Functions

اشتباهات رایج توابع Aggregate در SQL

  • فراموش کردن GROUP BY

دستور زیر خطا تولید می‌کند:

 

SELECT

Department,

AVG(Salary)

FROM Employees;

باید بنویسیم:

 

SELECT

Department,

AVG(Salary)

FROM Employees

GROUP BY Department;
  • استفاده اشتباه از WHERE

دستور زیر اشتباه است:

 

SELECT

Department,

AVG(Salary)

FROM Employees

GROUP BY Department

WHERE AVG(Salary)>1000;

باید از HAVING استفاده شود:

 

SELECT

Department,

AVG(Salary)

FROM Employees

GROUP BY Department

HAVING AVG(Salary)>1000;

عملکرد توابع Aggregate در SQL Server

SQL Server برای اجرای توابع Aggregate از الگوریتم‌های بهینه استفاده می‌کند و در صورت وجود Index مناسب می‌تواند نتایج را با سرعت بسیار بالا محاسبه کند.

در جداول بزرگ بهتر است:

 

  • Index مناسب تعریف شود.

  • از DISTINCT غیرضروری استفاده نشود.

  • Queryها بهینه نوشته شوند.

  • از Execution Plan برای بررسی عملکرد استفاده شود.

جمع‌بندی

توابع Aggregate در SQL یکی از مهم‌ترین ابزارهای تحلیل و گزارش‌گیری داده‌ها هستند.
توابعی مانند COUNT، SUM، AVG، MAX و MIN به شما امکان می‌دهند اطلاعات ارزشمندی را از میان حجم زیادی از داده‌ها استخراج کنید.
این توابع در کنار GROUP BY و HAVING قدرت بسیار زیادی برای تهیه گزارش‌های مدیریتی، مالی، آماری و تحلیلی فراهم می‌کنند.
یادگیری و تسلط بر توابع Aggregate برای هر توسعه‌دهنده SQL و مدیر پایگاه داده ضروری است، زیرا بخش بزرگی از پردازش‌های آماری و گزارش‌گیری در پروژه‌های واقعی بر پایه همین توابع انجام می‌شود.

محصولات مرتبط

کاربران ما

شما هم نظرتون با ما دریاره “در مورد توابع Aggregate در SQL چه می‌دانید؟” اشتراک بزارید

برای ارسال نظر لطفا ورود یا ثبت نام کنید

منو