مقدمه:
توابع جمع آوری در SQL ابزاری قدرتمند برای محاسبه مقادیر آماری از یک مجموعه داده هستند. این توابع به شما امکان می دهند تا بدون نیاز به نوشتن کدهای پیچیده، اطلاعات مفیدی از داده های خود استخراج کنید.
انواع توابع جمع آوری:
- SUM: مجموع مقادیر یک ستون را محاسبه می کند.
- AVG: میانگین مقادیر یک ستون را محاسبه می کند.
- MIN: کمترین مقدار یک ستون را پیدا می کند.
- MAX: بیشترین مقدار یک ستون را پیدا می کند.
- COUNT: تعداد مقادیر غیر NULL یک ستون را شمارش می کند.
کاربردهای توابع جمع آوری:
- محاسبه فروش کل: برای محاسبه مجموع فروش در یک دوره زمانی خاص.
- محاسبه میانگین حقوق: برای محاسبه میانگین حقوق کارمندان در یک شرکت.
- یافتن کمترین و بیشترین قیمت: برای یافتن کمترین و بیشترین قیمت محصول در یک فروشگاه.
- شمارش تعداد مشتریان: برای شمارش تعداد مشتریان فعال در یک سیستم.
مثال:
فرض کنید می خواهیم مجموع فروش محصولات در سال ۱۴۰۲ را محاسبه کنیم. می توانیم از کد زیر استفاده کنیم:
SELECT SUM(sales) FROM products WHERE year = ۱۴۰۲;
نکات مهم:
- توابع جمع آوری فقط برای ستون های عددی قابل استفاده هستند.
- برای استفاده از توابع جمع آوری بر روی ستون های رشته ای، باید از توابع مخصوصی مانند
COUNT DISTINCT
استفاده کنید. - می توانید از توابع جمع آوری در داخل دستورات
SELECT
وWHERE
استفاده کنید. - توابع جمع آوری فقط برای ستون های عددی قابل استفاده هستند.
- برای استفاده از توابع جمع آوری بر روی ستون های رشته ای، باید از توابع مخصوصی مانند
COUNT DISTINCT
استفاده کنید. - می توانید از توابع جمع آوری در داخل دستورات
SELECT
،WHERE
،GROUP BY
وHAVING
استفاده کنید.
موارد پیشرفته:
-
- توابع جمع آوری با GROUP BY: برای محاسبه مقادیر آماری برای گروه های مختلف داده ها
- توابع جمع آوری با HAVING: برای فیلتر کردن گروه های داده ها بر اساس مقادیر آماری
مثال های اضافی:
- محاسبه میانگین حقوق کارمندان در هر دپارتمان:
SELECT department, AVG(salary) FROM employees GROUP BY department;
- یافتن کمترین و بیشترین قیمت محصول در هر دسته بندی:
SELECT category, MIN(price), MAX(price) FROM products GROUP BY category;
- شمارش تعداد مشتریان در هر شهر:
SELECT city, COUNT(*) FROM customers GROUP BY city;
مثال جامع توابع جمع آوری در SQL
فرض کنید یک جدول به نام products
با ستون های زیر داریم:
id
(عدد صحیح): شناسه منحصر به فرد هر محصولname
(رشته): نام محصولprice
(عدد اعشاری): قیمت محصولquantity
(عدد صحیح): تعداد موجودی محصولcategory
(رشته): دسته بندی محصولsales
(عدد اعشاری): فروش محصول
در ادامه چند مثال از کاربرد توابع جمع آوری در این جدول ارائه می دهیم:
۱. محاسبه مجموع فروش محصولات:
SELECT SUM(sales) FROM products;
۲. محاسبه میانگین قیمت محصولات:
SELECT AVG(price) FROM products;
۳. یافتن کمترین و بیشترین قیمت محصول:
SELECT MIN(price), MAX(price) FROM products;
۴. شمارش تعداد محصولات:
SELECT COUNT(*) FROM products;
۵. محاسبه مجموع فروش محصولات در هر دسته بندی:
SELECT category, SUM(sales) FROM products GROUP BY category;
۶. محاسبه میانگین قیمت محصولات در هر دسته بندی:
SELECT category, AVG(price) FROM products GROUP BY category;
۷. یافتن کمترین و بیشترین قیمت محصول در هر دسته بندی:
SELECT category, MIN(price), MAX(price) FROM products GROUP BY category;
۸. شمارش تعداد محصولات در هر دسته بندی:
SELECT category, COUNT(*) FROM products GROUP BY category;
۹. محاسبه مجموع فروش محصولات در هر سال:
SELECT year, SUM(sales) FROM products GROUP BY year;
۱۰. محاسبه میانگین قیمت محصولات در هر سال:
SELECT year, AVG(price) FROM products GROUP BY year;
۱۱. یافتن کمترین و بیشترین قیمت محصول در هر سال:
SELECT year, MIN(price), MAX(price) FROM products GROUP BY year;
۱۲. شمارش تعداد محصولات در هر سال:
SELECT year, COUNT(*) FROM products GROUP BY year;
۱۳. محاسبه مجموع فروش محصولات با قیمت بیشتر از ۱۰۰ هزار تومان:
SELECT SUM(sales) FROM products WHERE price > ۱۰۰۰۰۰;
۱۴. محاسبه میانگین قیمت محصولات با موجودی کمتر از ۱۰ عدد:
SELECT AVG(price) FROM products WHERE quantity < ۱۰;
۱۵. یافتن کمترین و بیشترین قیمت محصول در دسته بندی “موبایل”:
SELECT MIN(price), MAX(price) FROM products WHERE category = 'موبایل';
۱۶. شمارش تعداد محصولات در دسته بندی “لوازم دیجیتال”:
SELECT COUNT(*) FROM products WHERE category = 'لوازم دیجیتال';
با استفاده از توابع جمع آوری و خلاقیت می توانید به اطلاعات آماری مفیدی از داده های خود دست پیدا کنید.