সুপ্রিয় বন্ধুরা,
কেমন আছেন? প্রথমে আমরা 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
আজ এ পর্যন্তই। ভাল থাকুন।
satha ase caliya jan sotti onak uopkar hosca