برای ساخت  پرس وجوهای تجمعی یا آماری در sql از توابع تجمعی استفاده می شود، با استفاده از این توابع روی محاسباتی روی ستون های جداول انجام شده و نتایج نشان داده می شود. در این بخش به معرفی چند نمونه از این توابع و استفاده از آنها می پردازیم

در SQL دو نوع تابع وجود دارد :

۱- توابع اسکالر: روی یک ستون (بدون تعیین ستون) اجرا شده و روی یک مقدارعمل میکند.مثل توابع ریاضی،رشته ای،تاریخ و غیره

  • توابع تجمعی: روی یک ستون از جدول اجرا شده و بر روی چند سطر عمل می کند.

توابع تجمعی عبارتند از

count  : محاسبه تعداد سطرها                          sum : محاسبه مجموع مقادیر یک ستون

avg : محاسبه میانگین مقادیر یک ستون          max ،min : محاسبه حداکثر یاحداقل مقادیر یک ستون

مثال۱- تعداد سطر های جدولstuds  را برمی گرداند.

select count (*)  from  studs

خروجی:

Count(*)
۴

 

جدول فروش رابصورت زیر درنظر بگیرید:

cp

qty pid cid
۱۵۰

۱۶۰

۱۳۰

۱۰۰

۱۰

۱۰

۳

۴

۱۰۰

۱۰۱

۱۰۰

۱۰۱

 

مثال۲- محاسبه ی مجموع مقادیر درجدول فروش

select  sum(qty)  from  cp

 

مثال۳- مجموع فروش کالاهای شماره ی ۱۰ را پیدا کنید

select  sum(qty)   From  cp    Where  pid=10 ;

 

 

مثال۴-  میانگین کل دانشجویان یک دانشگاه

select  Avg(avgr)  from  studs

مثال ۵- بالاترین معدل بین دانشجویان رشته کامپیوتروکد ۲

select  max(avgr)  from  studs  where fid=2

خروجی:

max(avgr)
۱۸

 

جدول دانشجویان ، دروس و انتخاب درس را بصورت زیر در نظر بگیرید:

studs

Fid Avg Name Id
۲

۱

۲

۱

۱۷

۱۸

۱۵

۱۶

Ali

Reza

Ahmad

Hadi

۱۰۰

۱۰۱

۱۰۲

۱۰۳

جدول courses

units title code
۲

۲

۳

Db

Web

physics

۱۰

۱۱

۱۲

 

 

Sabtenam

score code id
۱۶

۱۸

۱۰

۱۲

۱۰

۱۲

۱۱

۱۰

۱۰۰

۱۰۱

۱۰۲

۱۰۲

 

Code: کد درس id   : شماره دانشجویی    score: نمره

 

مثال۶-  نمایش بالاترین معدل ها به تفکیک رشته

select fid , Max (avgr)

from studs

group by fid

 

Max(Avgr) Fid
۱۸

۱۷

۱

۲

مثال ۷ : نامگذاری ستون ها بصورت دلخواه

select fid , Max (avgr)  MG

from studs

group by fid

 

MG Fid
۱۸

۱۷

۱

۲

مثال۸- بالاترین معدل های بالای ۱۵ را به تفکیک رشته نمایش دهید.

select Fid , Max (avgr)

from studs

group by Fid

having Max (avgr) > 15;

* از HAVING  برای اعمال محدودیت روی نتیجه پرس و جوی تجمعی استفاده می شود

 

مثال ۹- بالاترین معدل ها را به تفکیک رشته برای دانشجویان با شماره دانشجویی بزرگتر از ۳ نمایش دهید.

select Fid , Max (avgr)

from studs

where id > 3

group by Fid;

 

نمایش قابل چاپ