تابع 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 کلیک کنید.
و تا چندین سلکت تو در تو را میتوان ایجاد کرد؟
همین منطق برای جاهای دیگه هم به کار میره. مثلا برای انتخاب فیلدها، میتونی یکی از فیلدها رو سلکت بذاری.
محدودیت خاصی نداره، ولی باید دقت کنی که اگر به طور اصولی استفاده کنی، اجرای کوئری طول میکشه و روی لود تأثیر منفی میذاره.
بعضی مواقع هم باعث ایجاد خطای منطقی در برنامهنویسی میشه. یعنی اینکه کوئری جواب داره، ولی جواب از لحاظ معنایی، اشکال داره.
www.beyamooz.com/sql/101-advanced/263