📞 02166056460

تابع Avg در sql

10 / 10
از 1 کاربر
بازگشت به لیست مقالات » | یکشنبه 19 مهر 1405 در ساعت 9 و 20 دقیقه | نظرات کاربران ( 0 )

تابع AVG در SQL چیست و چه کاربردی دارد؟

💡میانگین گیری از داده های عددی

تابع AVG در SQL یکی از توابع تجمیعی پرکاربرد در پایگاه داده است که میانگین مقادیر یک ستون عددی را محاسبه می کند. این تابع برای تحلیل نمره ها، قیمت ها، مدت زمان ها، تعداد فروش و دیگر داده های قابل محاسبه به کار می رود. نتیجه معمولا یک مقدار عددی است که دیدی خلاصه از داده های انتخاب شده به شما می دهد.

📊کاربرد در گزارش های روزمره

برای مثال، یک فروشگاه می تواند میانگین مبلغ سفارش ها را به دست آورد یا یک مدرسه میانگین نمره دانش آموزان را محاسبه کند. در هر دو نمونه، به جای مشاهده تک تک ردیف ها، تابع AVG یک عدد خلاصه تولید می کند. برای بررسی های دقیق تر نیز می توان آن را همراه شرط، گروه بندی و دیگر توابع SQL به کار برد.

ساختار دستور AVG در SQL

🧩قالب کلی کوئری

ساختار دستور avg ساده است. نام ستون عددی را به عنوان ورودی تابع می نویسید و جدول مورد نظر را پس از عبارت FROM مشخص می کنید. شکل پایه دستور به این صورت است:

SELECT AVG(column_name)
FROM table_name;
🔎معنی اجزای دستور

در این نمونه، column_name نام ستونی است که می خواهید میانگین آن محاسبه شود و table_name نام جدول حاوی داده ها است. عبارت SELECT نتیجه را درخواست می کند و FROM منبع داده را مشخص می کند. در کوئری واقعی، این دو جای خالی را با نام های موجود در ساختار پایگاه داده خود جایگزین کنید.

یک مثال کاربردی از محاسبه میانگین

🧑‍🎓میانگین نمره ها

فرض کنید جدولی با نام Students دارید و نمره هر دانش آموز در ستون Grade نگهداری می شود. برای محاسبه میانگین نمره های ثبت شده، می توانید کوئری زیر را اجرا کنید:

SELECT AVG(Grade) AS AverageGrade
FROM Students;
✅نام گذاری نتیجه

عبارت AS AverageGrade برای نتیجه محاسبه شده یک نام قابل فهم می سازد. استفاده از نام مستعار اختیاری است، اما در گزارش ها و برنامه هایی که نتیجه کوئری را نمایش می دهند، خوانایی را بهتر می کند. اگر این عبارت حذف شود، پایگاه داده همچنان میانگین را برمی گرداند؛ فقط نام ستون خروجی ممکن است به شکل پیش فرض نمایش داده شود.

AVG چگونه با مقادیر خالی و تکراری رفتار می کند؟

⚠️مقدار NULL در محاسبه وارد نمی شود

تابع AVG در حالت معمول مقادیر NULL را نادیده می گیرد؛ یعنی این مقادیر نه به مجموع عددها اضافه می شوند و نه در شمارش مقادیر برای تقسیم لحاظ می شوند. این رفتار با مقدار صفر تفاوت دارد. صفر یک مقدار عددی واقعی است و در محاسبه میانگین تاثیر می گذارد، اما NULL به معنی نامشخص یا ثبت نشده بودن مقدار است.

🧮تفاوت NULL و صفر

اگر نمره های ثبت شده ۱۰، ۲۰ و NULL باشند، میانگین بر اساس دو مقدار عددی محاسبه می شود و برابر ۱۵ خواهد بود. اما اگر مقدار سوم صفر باشد، میانگین هر سه عدد محاسبه می شود و نتیجه ۱۰ خواهد شد. بنابراین پیش از تفسیر خروجی، باید بدانید داده خالی در جدول به صورت NULL ذخیره شده یا با عددی مانند صفر نشان داده می شود.

🔁مقادیر تکراری

به طور پیش فرض، AVG همه ردیف های عددی واجد شرایط را در نظر می گیرد؛ بنابراین اگر یک عدد در چند ردیف تکرار شده باشد، هر بار در محاسبه حضور دارد. در بعضی گزارش ها ممکن است بخواهید میانگین مقادیر یکتا را محاسبه کنید. برای این حالت، در پایگاه داده هایی که از آن پشتیبانی می کنند، می توان از شکل AVG(DISTINCT column_name) استفاده کرد.

فیلتر کردن داده ها پیش از محاسبه میانگین

🎯استفاده از WHERE

برای محاسبه میانگین فقط روی بخشی از ردیف ها، شرط را با WHERE تعیین کنید. در مثال زیر، میانگین قیمت محصولاتی محاسبه می شود که در دسته مشخصی قرار دارند. شرط پیش از تجمیع ردیف ها اعمال می شود و ردیف های نامنطبق در محاسبه شرکت نمی کنند.

SELECT AVG(Price) AS AveragePrice
FROM Products
WHERE CategoryID = 3;
📅تعیین بازه زمانی

برای گزارش های دوره ای، می توانید شرطی روی تاریخ قرار دهید تا میانگین فقط برای یک بازه زمانی محاسبه شود. نام ستون تاریخ و شیوه نوشتن مقدار تاریخ ممکن است با نوع پایگاه داده و قالب ذخیره سازی شما تفاوت داشته باشد؛ پس قالب تاریخ را مطابق محیط اجرا بررسی کنید.

SELECT AVG(Amount) AS AverageAmount
FROM Orders
WHERE OrderDate >= '2024-01-01'
  AND OrderDate < '2025-01-01';

گروه بندی و محاسبه میانگین برای هر دسته

🗂️ترکیب AVG با GROUP BY

وقتی می خواهید به جای یک میانگین کلی، میانگین جداگانه هر گروه را ببینید، از GROUP BY استفاده کنید. برای نمونه، فروشگاه می تواند میانگین قیمت محصولات هر دسته را جداگانه نمایش دهد. در این حالت، ستون دسته بندی هم در بخش SELECT قرار می گیرد تا مشخص باشد هر عدد متعلق به کدام گروه است.

SELECT CategoryID, AVG(Price) AS AveragePrice
FROM Products
GROUP BY CategoryID;
🔍فیلتر کردن گروه ها با HAVING

شرط WHERE ردیف ها را پیش از گروه بندی فیلتر می کند، اما برای محدود کردن نتیجه بر اساس میانگین هر گروه از HAVING استفاده می شود. برای مثال، می توانید فقط دسته هایی را نمایش دهید که میانگین قیمت آنها از یک مقدار مشخص بیشتر است. این تفاوت در گزارش های گروهی اهمیت زیادی دارد.

SELECT CategoryID, AVG(Price) AS AveragePrice
FROM Products
GROUP BY CategoryID
HAVING AVG(Price) > 100;

تفاوت AVG با توابع COUNT و SUM

تابع کاربرد نمونه نتیجه
AVG محاسبه میانگین مقادیر عددی میانگین نمره ها
SUM جمع مقادیر عددی مجموع مبلغ سفارش ها
COUNT شمارش ردیف ها یا مقادیر غیر NULL تعداد سفارش های ثبت شده
📘انتخاب تابع مناسب

این توابع هر کدام پاسخ متفاوتی می دهند. اگر مقدار متوسط را می خواهید، AVG انتخاب مناسب است؛ اگر مجموع مورد نیاز باشد از SUM استفاده می کنید و برای شمارش، COUNT به کار می رود. ترکیب این توابع در یک کوئری می تواند گزارشی کامل تر بسازد؛ برای نمونه، هم تعداد ردیف ها و هم میانگین و مجموع یک ستون را هم زمان مشاهده کنید.

دقت عددی و قالب نمایش میانگین

⚙️نوع داده روی نتیجه اثر دارد

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

✨گرد کردن نتیجه

اگر می خواهید عدد میانگین را با تعداد مشخصی رقم اعشار نمایش دهید، در بسیاری از پایگاه های داده می توانید از تابعی مانند ROUND استفاده کنید. نام و جزئیات تابع گرد کردن ممکن است بین سیستم ها تفاوت داشته باشد. بهتر است گرد کردن را تنها برای قالب خروجی انجام دهید و دقت مورد نیاز محاسبات بعدی را در نظر بگیرید.

SELECT ROUND(AVG(Price), 2) AS AveragePrice
FROM Products;

اشتباه های رایج هنگام استفاده از AVG

1

نادیده گرفتن NULL و صفر: این دو مقدار یکسان نیستند. پیش از تحلیل خروجی، روش ثبت داده های ناموجود را مشخص کنید تا میانگین را درست تفسیر کنید.

2

فراموش کردن شرط: اجرای تابع روی همه ردیف ها ممکن است نتیجه ای متفاوت از میانگین بازه یا گروه مورد نظر بدهد. شروط WHERE و گروه بندی را با هدف گزارش هماهنگ کنید.

3

گروه بندی ناقص: هنگام استفاده از GROUP BY، مطمئن شوید ستون های انتخاب شده با قواعد گروه بندی سیستم پایگاه داده سازگار باشند. در غیر این صورت کوئری ممکن است خطا بدهد یا نتیجه مورد انتظار را تولید نکند.

4

استفاده از ستون غیرعددی: AVG برای محاسبه روی داده های عددی طراحی شده است. انتخاب ستون متنی یا ستونی با نوع ناسازگار می تواند خطا ایجاد کند؛ نوع ستون را پیش از اجرای کوئری بررسی کنید.

5

اعتماد به تعداد رقم نمایش داده شده: کوتاه شدن عدد در خروجی لزوما به معنی از بین رفتن دقت محاسبه نیست. قالب نمایش و مقدار واقعی ذخیره شده را از هم جدا در نظر بگیرید.

نکات بهینه سازی و انتخاب روش مناسب

🚀کوئری روشن و هدفمند بنویسید

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

🧠میانگین را متناسب با سوال تحلیل کنید

میانگین برای خلاصه کردن داده ها مفید است، اما به تنهایی همه ویژگی های مجموعه را نشان نمی دهد. چند مقدار بسیار بزرگ یا کوچک می توانند نتیجه را تغییر دهند. اگر توزیع داده ها نامتوازن است، میانگین را در کنار تعداد ردیف ها، بازه مقادیر یا شاخص های دیگری که برای تحلیل شما مناسب هستند بررسی کنید.

جمع بندی تابع AVG در SQL

⭐نکته پایانی

تابع AVG در SQL راهی ساده برای محاسبه میانگین یک ستون عددی است و می تواند با WHERE برای فیلتر ردیف ها، با GROUP BY برای محاسبه میانگین هر گروه و با HAVING برای محدود کردن گروه ها ترکیب شود. برای رسیدن به نتیجه درست، تفاوت NULL و صفر، نوع داده ستون و دقت عددی خروجی را در نظر بگیرید. با انتخاب شرط های مناسب، خروجی نام گذاری شده و بررسی داده ها می توانید گزارش های خوانا و قابل اتکایی بسازید. اگر در کنار توسعه نرم افزار به خدمات طراحی سایت نیاز دارید، این لینک را مشاهده کنید.

سوالات متداول تابع AVG در SQL

تابع AVG در SQL چه کاری انجام می دهد؟

این تابع میانگین مقادیر عددی یک ستون را در ردیف های مورد نظر محاسبه می کند. می توانید آن را به تنهایی یا همراه شرط و گروه بندی استفاده کنید.

آیا AVG مقدار NULL را در میانگین حساب می کند؟

خیر. در حالت معمول، AVG مقادیر NULL را نادیده می گیرد و فقط مقادیر عددی موجود را در محاسبه لحاظ می کند. مقدار صفر اما یک عدد واقعی است و در میانگین تاثیر دارد.

چطور میانگین را برای هر گروه جداگانه محاسبه کنم؟

ستون مورد نظر برای دسته بندی را در SELECT بیاورید و از GROUP BY روی همان ستون استفاده کنید. تابع AVG برای هر گروه یک نتیجه جداگانه تولید می کند.

تفاوت WHERE و HAVING در کوئری AVG چیست؟

WHERE ردیف ها را پیش از گروه بندی فیلتر می کند. HAVING پس از گروه بندی برای محدود کردن گروه ها بر اساس نتیجه تابع تجمیعی، مانند میانگین، به کار می رود.

چگونه نتیجه AVG را با دو رقم اعشار نمایش دهم؟

در بسیاری از پایگاه های داده می توانید AVG را با تابعی مانند ROUND ترکیب کنید و تعداد رقم اعشار را مشخص کنید. نام و جزئیات تابع گرد کردن ممکن است با توجه به سیستم پایگاه داده تفاوت داشته باشد.

ارسال نظر و نظرات ثبت شده
سایر مقالات
تابع ISNUL در sql آموزش SQL تابع ISNULL در SQL؛ آموزش کاربرد و مثال جایگزینی مقدار NULL در پرس وجوها و محاسب ...
تابع Format در اسکیوال آموزش SQL Server تابع FORMAT در SQL Server؛ آموزش کاربرد و مثال قالب بندی تاریخ، زمان و عد ...
تابع Now در sql آموزش SQL تابع NOW در SQL؛ نمایش تاریخ و ساعت جاری نحوه استفاده، تفاوت پایگاه‌های داد ...
تابع Round در sql آموزش SQL تابع Round در اسکیوال آموزش گرد کردن اعداد، تعیین دقت اعشار و بررسی مثال های کار ...
تابع Len در sql آموزش SQL تابع LEN در SQL؛ آموزش کاربردی با مثال نحوه شمارش طول رشته، بررسی فاصله‌ها ...
تابع Mid در sql آموزش SQL تابع MID در SQL چیست و چگونه از آن استفاده کنیم؟ استخراج بخشی از متن، بررسی ساخت ...
تابع LCase در sql آموزش SQL تابع LCase در SQL چیست و چگونه از آن استفاده کنیم؟ آموزش تبدیل حروف بزرگ به حروف ...
تابع UCase در sql آموزش SQL تابع UCASE در SQL؛ تبدیل متن به حروف بزرگ نحوه استفاده، مثال ها، تفاوت UCASE و U ...
تابع Sum در sql آموزش SQL تابع SUM در SQL؛ راهنمای محاسبه مجموع داده ها نحو دستور، مثال های کاربردی، نکات ...
تابع Min در sql آموزش SQL تابع MIN در SQL چیست و چگونه کار می‌کند؟ آشنایی با کاربرد، ساختار، مثال&zwn ...
تابع Max در sql آموزش SQL تابع MAX در SQL؛ آموزش کاربرد و مثال روش پیدا کردن بزرگ‌ترین مقدار در یک ست ...
تابع Last در sql آموزش SQL تابع Last در SQL چیست و چگونه آخرین رکورد را پیدا کنیم؟ آشنایی با کاربرد تابع La ...
تابع First در sql تابع First در SQL چیست و چگونه کار می کند؟ 💡آشنایی با تابع First تابع First در SQL برای برگ ...
تابع Count در sql تابع COUNT در SQL چیست و چگونه از آن استفاده کنیم؟ 💡آشنایی با شمارش داده ها تابع COUNT در S ...
تابع Avg در sql تابع AVG در SQL چیست و چه کاربردی دارد؟ 💡میانگین گیری از داده های عددی تابع AVG در SQL یک ...
دسته بندی
جستجو
⏳ در حال پردازش...
لطفا صبر کنید