ধারা অনুসারে যোগফল এবং গ্রুপ সহ SQL কেস

Dhara Anusare Yogaphala Ebam Grupa Saha Sql Kesa



এই টিউটোরিয়ালে, আমরা শিখব কিভাবে SUM ফাংশন এবং একটি GROUP BY ক্লজের সাথে CASE স্টেটমেন্ট ব্যবহার করতে হয়।

এই টিউটোরিয়ালটি SQL কেস স্টেটমেন্ট, sum() ফাংশন বা GROUP BY ক্লজের সাথে কাজ করার মৌলিক বিষয়গুলিকে কভার করে না। আপনি যদি এই SQL বৈশিষ্ট্যগুলির মৌলিক বিষয়গুলি খুঁজছেন তবে আরও আবিষ্কারের জন্য বিষয়গুলির উপর আমাদের টিউটোরিয়ালগুলি দেখুন৷







সমস্যা:

ধরা যাক আমাদের 'অর্ডার' নামে একটি টেবিল রয়েছে এবং আমরা গ্রাহক আইডি দ্বারা গোষ্ঠীভুক্ত প্রতিটি গ্রাহকের জন্য মোট বিক্রয় পেতে চাই, তবে আমরা সেই গ্রাহকদের জন্য একটি ছাড়ও গণনা করতে চাই যারা দুটির বেশি অর্ডার দিয়েছে৷



টেবিল নিম্নলিখিত দেখানো হয়:



টেবিল অর্ডার তৈরি করুন (
অর্ডার_আইডি প্রাথমিক কী,
customer_id INT,
পণ্য_আইডি INT,
অর্ডার_তারিখ DATE,
পরিমাণ INT,
মূল্য দশমিক ( 10 , 2 )
) ;


নিম্নলিখিত হিসাবে দেখানো টেবিলে একটি নমুনা তথ্য সন্নিবেশ করান:





অর্ডার ইনসার্ট ( অর্ডার_আইডি, গ্রাহক_আইডি, পণ্য_আইডি, অর্ডার_তারিখ, পরিমাণ, মূল্য )
মূল্য
( 1 , 101 , 1 , '2022-04-01' , 2 , 10.99 ) ,
( 2 , 102 , 2 , '2022-04-01' , 1 , 19.99 ) ,
( 3 , 103 , 1 , '2022-04-02' , 3 , ৮.৯৯ ) ,
( 4 , 101 , 3 , '2022-04-03' , 2 , 15.99 ) ,
( 5 , 102 , 1 , '2022-04-03' , 1 , 12.99 ) ,
( 6 , 104 , 2 , '2022-04-04' , 4 , 7.99 ) ,
( 7 , 103 , 3 , '2022-04-05' , 2 , 21.99 ) ,
( 8 , 101 , 2 , '2022-04-06' , 1 , 18.99 ) ,
( 9 , 104 , 1 , '2022-04-07' , 2 , ৯.৯৯ ) ,
( 10 , 102 , 3 , '2022-04-07' , 3 , 14.99 ) ;


এটি নিম্নরূপ একটি টেবিল তৈরি করা উচিত:



ধারা অনুসারে যোগফল এবং গ্রুপ সহ SQL কেস

আইডি দ্বারা গোষ্ঠীভুক্ত প্রতিটি গ্রাহকের জন্য মোট বিক্রয় আনতে এবং দুইটির বেশি অর্ডার দেওয়া গ্রাহকদের জন্য ডিসকাউন্ট গণনা করতে, আমরা CASE বিবৃতিটি SUM এবং GROUP BY ধারার সাথে একত্রে ব্যবহার করতে পারি যা নিম্নলিখিতটিতে দেখানো হয়েছে:

নির্বাচন করুন orders.customer_id, যোগফল ( অর্ডার. পরিমাণ * অর্ডার। মূল্য * ( মামলা যখন গণনা ( * ) > 2 তারপর 0.9 অন্য 1 শেষ ) ) হিসাবে অর্ডার থেকে মোট_বিক্রয়;


প্রদত্ত উদাহরণে, গ্রাহক দুইটির বেশি অর্ডার দিয়েছে কিনা তা পরীক্ষা করতে আমরা SQL CASE স্টেটমেন্ট ব্যবহার করি।

যদি একজন গ্রাহক দুইটির বেশি অর্ডার দিয়ে থাকেন, তাহলে আমরা মোট_বিক্রয়কে 0.9 দ্বারা গুণ করি যা 10% ডিসকাউন্ট প্রযোজ্য।

উপসংহার

আমরা আলোচনা করেছি কিভাবে আমরা SUM() এবং GROUP BY ক্লজের সাথে SQL CASE স্টেটমেন্ট ব্যবহার করতে পারি।