تابع sum در SQL
تابع SUM
تابع SUM جمع کل ستون عددی را بر می گرداند.
فرم دستور SUM:
SELECT SUM(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 SUM(OrderPrice) AS OrderTotal FROM Orders
نتیجه به شکل زیر خواهد بود:
OrderTotal |
---|
5700 |
برای مشاهده فیلم های آموزشی مقدماتی تا پیشرفته پایگاه دادهSQLServer کلیک کنید.
- نوشته شده توسط امیر پهلوان صادق
- بازدید: 35774
دیدگاهها
سلام
در مثال بالا اگه فقط بخواهیم جمع مقادیر hansen رو در نتیجه ببینیم چیکار باید کرد ؟
سلام
SELECT SUM(OrderPrice) AS OrderTotal FROM Orders
where Customer='Hanse n'
با سلام
عبارت AS در تابع SUM
[SELECT SUM(OrderPrice) AS OrderTotal FROM Orders]
چه معنی میده؟
ممنون میشم جواب بدین
سلام در کوئری بالا برای فیلد SUM اگر از کلمه کلیدی AS استفاده نکنید، عنوان ستون در نظر گرفته نمی شود. بنابراین زمانی که از عبارت AS و در ادامه از یک کلمه دلخواه استفاده کنید، در خروجی ستون های کوئری شما با نامی که شما تنظیم کرده اید نمایش داده خواهند شد.
البته توجه داشته باشید، کاربرد اصلی عبارت AS، جهت کوتاه سازی نام ستون ها و جداول است به مثال زیر توجه کنید:
SELECT od.Name,r.NationalName,rt.RoleTypeName
FROM sal.OrderDashbo ard od
INNER JOIN sal.OrderDashbo ardRole odr ON odr.OrderDashbo ardId = od.OrderDashboardId
INNER JOIN sso.Role r ON r.RoleID = odr.RoleId
INNER JOIN sso.RoleType rt ON rt.RoleTypeID = r.RoleTypeID
دستور sum به نوع ستون هم بستگي داره؟مثلا اگه ستون varchar باشه باز هم sum اجرا ميشه؟
در تابع sum، ستون مورد نظر، باید عددی باشد.
ببخشید برای بدست آوردن بیشترین مقدار ستونی که از نوع varchar باید چی نوشت؟
سلام
البته اگر مقدار تمام رکورد های آن ستون عددی باشد و فقط نوع آن varchar یا حروف باشد ، با رعایت نوع داده که در بخش "انوع داده در SQL" توضیح داده شده ، می توان به نوع عددی cast نمود تا شرایط مقایسه یا جمع را داشته باشد .
SELECT TOP 1 * FROM YourTable
ORDER BY VarCharColumn DESC