এস কিউ এল সার্ভার ২০০৮ শিখুন ধাপে ধাপে [পর্ব-০৪] :: Aggregate Function

SQL সার্ভার ২০০৮ শিখুন ধাপে ধাপে

সুপ্রিয় বন্ধুরা,

কেমন আছেন? প্রথমে আমরা aggregate function নিয়ে আলোচনা করবো।

এস কিউ এল ডাটাবেস এ aggregate function গুলো দ্বারা value calculation করা হয় এবং তারা single value return করে।

শুরুতে একটি টেবিল তৈরি করুন এবং কিছু ডাটা এন্ট্রি করুন।

create table productInfo
(
pid int primary key not null,
pName varchar(20),
pPrice money,
pQty int
)

insert into productInfo values(1,'mouse',250,500)
insert into productInfo values(2,'key board',550,500)
insert into productInfo values(3,'hdd',5250,100)
insert into productInfo values(4,'tvcard',2250,500)
insert into productInfo values(5,'ram',1250,500)
data insert করার পর টেবিল এ নিম্নের ডাটাগুলো দেখাবে।
ID Name Price Quantity
1	mouse	     250.00	500
2	key board    550.00	500
3	hdd	     5250.00	100
4	tvcard	     2250.00	500
5	ram	     1250.00	500
  • MIN: select MIN(pprice) from productInfo (এখানে MIN function দ্বারা productInfo table এর price কলামের সব থেকে কম value দেখাবে। MIN এর পূর্ণ রূপ Minimum) result: 250.00
  • MAX: select MAX(pprice) from productInfo (এখানে MAX function দ্বারা productInfo table এর price কলামের সব থেকে বেশি value দেখাবে। MAX এর পূর্ণ রূপ Maximum) result: 5250.00
  • AVG: select AVG(pprice) from productInfo  (এখানে AVG function দ্বারা productInfo table এর price কলামের গড় value দেখাবে। AVG এর পূর্ণ রূপ Average) result: 1910.00
  • COUNT: select COUNT(pprice) from productInfo (এখানে COUNT function দ্বারা productInfo table এর price কলামের value কতগুলো তা দেখাবে। ) result: 5
  • SUM: select SUM(pprice) from productInfo (এখানে SUM function দ্বারা productInfo table এর price কলামের সবগুলো  value  যোগ করে দেখাবে। ) result: 9550.00
  • সর্বোচ্চ value: select top 1 pprice from productInfo order by pPrice desc (এখানে pPrice কলামের ভেলুকে order by desc দ্বারা বড় থেকে ছোট এই ক্রমানুসারে সাজানো হয়েছে এবং select Top 1 দ্বারা সর্বোচ্চ ভেলুটি বের করা হয়েছে।) result: 5250.00
  • সর্ব নিম্ন value: select top 1 pprice from productInfo order by pPrice  (এখানে লক্ষ করুন desc লেখা নেই। এর কারন sql server by default ছোট থেকে বড় এই ক্রমানুসারে সাজানো থাকে শুধু top 1 দ্বারা ভেলুটি বের করে নেয়া হল।) result: 250.00
  • GROUP BY : ধরুন আপনার productInfo table এ "ram" রয়েছে ৪ বার, mouse রয়েছে ৫ বার, hdd রয়েছে ২ বার। আপনি এখন দেখতে চাচ্ছেন ram, mouse, hdd এর সর্বমোট প্রাইস কত। এজন্য কিছু ভেলু insert করুন নিচের মত করে...
insert into productInfo values(6,'hdd',5200,500)
insert into productInfo values(7,'mouse',250,500)
insert into productInfo values(8,'mouse',250,500)
insert into productInfo values(9,'mouse',250,500)
insert into productInfo values(10,'mouse',250,500)
insert into productInfo values(11,'ram',1250,500)
insert into productInfo values(12,'ram',1250,500)
insert into productInfo values(13,'ram',1250,500)
এবার নিচের query টি লিখুনঃ
  • select pName,SUM(pprice)as totalPrice from productInfo
    where pName in ('ram','mouse','hdd')
    group by pName
result:
hdd	10450.00
mouse	1250.00
ram	5000.00
  • HAVING: Having আমরা তখনি use করবো যখন aggregate function দ্বারা আমরা কোন condition দেবো। যেমন ধরুন, আপনার productInfo table এ hdd, mouse এবং ram এর মধ্যে কোন product এর দাম ১০,০০০/= বেশি। চলুন দেখিঃ
select pName,SUM(pprice)as totalPrice from productInfo
where pName in ('ram','mouse','hdd')
group by pName
having SUM(pprice)>10000
result:
hdd 10450.00
  • UPPER: ছোট হাতের লেখাকে বড় হাতের লেখায় পরিনত করে এই function. (select upper('my name is md. shafiqul azam')
  • LOWER:  বড় হাতের লেখাকে ছোট হাতের লেখায় পরিনত করে এই function. (select LOWER('MY NAME IS MD. SHAFIQUL AZAM')
  • LEN: একটি ভেলুর মধ্যে কতগুলো character অথবা লেটার অথবা সংখ্যা রয়েছে তা নির্নয় করে এই function. (SELECT LEN(1234567890)
  • ROUND: কোন দশমিক সংখ্যাকে কিভাবে দেখাবেন সেটা নিয়ে কাজ করে এই function.  এর দুটি আরগুমেন্ট রয়েছে। অর্থাৎ এই function এর মধ্যে আপনাকে দুটি বিষয় বলে দিতে হবে। উদাহরন দেখুন নিচে।
            select ROUND(5.442221,3) (এখানে ১ম অংশে ডেসিমেল ভেলু এবং পরের অংশে দশমিক এর পর কত ঘর আপনি চান তা বলে দিন।
           result: 5.442000
আজ এ পর্যন্তই। ভাল থাকুন।

Level 2

আমি Shafiq। বিশ্বের সর্ববৃহৎ বিজ্ঞান ও প্রযুক্তির সৌশল নেটওয়ার্ক - টেকটিউনস এ আমি 12 বছর 4 মাস যাবৎ যুক্ত আছি। টেকটিউনস আমি এ পর্যন্ত 18 টি টিউন ও 44 টি টিউমেন্ট করেছি। টেকটিউনসে আমার 1 ফলোয়ার আছে এবং আমি টেকটিউনসে 0 টিউনারকে ফলো করি।


টিউনস


আরও টিউনস


টিউনারের আরও টিউনস


টিউমেন্টস

Level 0

satha ase caliya jan sotti onak uopkar hosca

Level 2

সাথে থাকার জন্য ধন্যবাদ বস…।

Level 0

Onak emergency akta post Thanks bro….apnr mail addressta ki aktu daoa jai kisu prob face korsi.

Level 0

mr shafiq via amr cdr(bill calculate) er akta quary silo ….jar ami solution chai.Ajonno mail address tar maddome apnake describe korle bujhte parten.Jodi kono prob na thake …amr aktu upokar hoto..Thanks

Level 2

[email protected] “any problem share with me”