تابع avg در SQL
تابع AVG:
تابع AVG میانگین مقادیر یک ستون عددی را بر می گرداند.
نحوه استفاده:
SELECT AVG(column_name) FROM table_name
مثال:
جدول Orders را در زیر داریم:
O_Id | OrderDate | OrderPrice | Customer |
---|---|---|---|
1 | 2008/11/12 | 1000 | Hansen |
2 | 2008/10/23 | 1600 | Nilsen |
3 | 2008/09/02 | 700 | Hansen |
4 | 2008/09/03 | 300 | Hansen |
5 | 2008/08/30 | 2000 | Jensen |
6 | 2008/10/04 | 100 | Nilsen |
می خواهیم میانگین فیلد OrderPrice را به دست آوریم.
از دستور زیر استفاده می کنیم:
SELECT AVG(OrderPrice) AS OrderAverage FROM Orders
نتیجه به شکل زیر خواهد بود:
OrderAverage |
---|
950 |
می خواهیم مشتریانی را پیدا کنیم که مقدار سفارش آنها بزرگتر از میانگین باشد.
از دستور زیر استفاده می کنیم:
SELECT Customer FROM Orders
WHERE OrderPrice>(SELECT AVG(OrderPrice) FROM Orders)
WHERE OrderPrice>(SELECT AVG(OrderPrice) FROM Orders)
نتیجه به شکل زیر خواهد بود:
Customer |
---|
Hansen |
Nilsen |
Jensen |
برای مشاهده فیلم های آموزشی مقدماتی تا پیشرفته پایگاه دادهSQLServer کلیک کنید.
- نوشته شده توسط امیر پهلوان صادق
- بازدید: 19228
دیدگاهها
برای استفاده از سلکت های تو در تو باید در بخش where دستور select قبلی اینکارو انجام دهیم ؛درسته؟
و تا چندین سلکت تو در تو را میتوان ایجاد کرد؟
عبارت سلکت تودرتو برای اینجا مناسب نیست. سلکت دومی در قسمت شرط اومده. در واقع شما وقتی در یک کوئری از شرط استفاده میکنی، شرط اون رو میتونی اجرای یه کوئری دیگه قرار بدی.
همین منطق برای جاهای دیگه هم به کار میره. مثلا برای انتخاب فیلدها، میتونی یکی از فیلدها رو سلکت بذاری.
محدودیت خاصی نداره، ولی باید دقت کنی که اگر به طور اصولی استفاده کنی، اجرای کوئری طول میکشه و روی لود تأثیر منفی میذاره.
بعضی مواقع هم باعث ایجاد خطای منطقی در برنامهنویسی میشه. یعنی اینکه کوئری جواب داره، ولی جواب از لحاظ معنایی، اشکال داره.
وقتي گفتيد AS OrderAverage يه ستون به نام OrderAverage ايجاد ميكنه و مقدار رو تو اون قرار ميده؟ as دقيقا چكار ميكنه؟
as مخفف Alias است و با استفاده از آن می توان یک نام مستعار (Alias) به جدول یا ستون داد. برای اطلاعات بیشتر به لینک زیر مراجعه کنید:
www.beyamooz.com/sql/101-advanced/263