কিভাবে MySQL-এর ক্লজ ব্যবহার করবেন যেখানে যোগফল থ্রেশহোল্ডের চেয়ে বেশি

Kibhabe Mysql Era Klaja Byabahara Karabena Yekhane Yogaphala Thresaholdera Ceye Besi



মাইএসকিউএল ডাটাবেসের সাথে কাজ করার সময়, আপনার কাছে প্রায়শই এমন উদাহরণ থাকবে যেখানে আপনি মানগুলি ফিল্টার করতে চান। যদিও আপনি WHERE ক্লজটি ব্যবহার করতে পারেন, এটি সবসময় সব ক্ষেত্রে কাজ করে না। যখন আপনি একটি সমষ্টিগত ফাংশন ব্যবহার করে একটি ফিল্টার কোয়েরি চালাতে চান এবং গ্রুপিংগুলি প্রয়োগ করতে চান তখন HAVING ক্লজটি ব্যবহার করা হয়।

HAVING ক্লজটি তার ফিল্টারে GROUP BY ক্লজের উপর নির্ভর করে এবং প্রদত্ত শর্তের উপর ভিত্তি করে অনুসন্ধান চালায়। এটি শর্তের উপর ভিত্তি করে ফিল্টারকে সীমাবদ্ধ করে এবং শুধুমাত্র নির্বাচিত গোষ্ঠীগুলিকে ফিরিয়ে দেয় যদি তারা শর্ত পূরণ করে। আমাদের কাছে MySQL HAVING ক্লজ ব্যবহার করার উদাহরণ রয়েছে যেখানে যোগফল থ্রেশহোল্ড অতিক্রম করে। এইভাবে, আপনি আজকের পোস্টের শেষে কীভাবে এটি ব্যবহার করবেন তা আয়ত্ত করতে পারবেন।







কিভাবে MySQL-এর ক্লজ ব্যবহার করবেন যেখানে যোগফল থ্রেশহোল্ডের চেয়ে বেশি

আপনি GROUP BY ক্লজের সাথে MySQL HAVING clause প্রয়োগ করুন। এর সিনট্যাক্স নিম্নরূপ:



এক্সপ্রেশন 1, .. এক্সপ্রেশন_এন, aggregate_func (এক্সপ্রেশন) নির্বাচন করুন

আপনি SUM(), COUNT(), MIN(), MAX(), এবং AVG() সহ বিভিন্ন সমষ্টিগত ফাংশন ব্যবহার করতে পারেন। মনে রাখবেন যে কোনো এক্সপ্রেশন যা সমষ্টিগত ফাংশনের সাথে ব্যবহৃত হয় না তা অবশ্যই GROUP BY ক্লজের সাথে উল্লেখ করতে হবে।



শর্ত হিসাবে, এটি সমষ্টিগত ফলাফলগুলিতে প্রয়োগ করা হয় যেখানে আপনি শর্তটি পরীক্ষা করতে চান এমন থ্রেশহোল্ড নির্দিষ্ট করেন৷ উদাহরণস্বরূপ, আপনি SUM() ফাংশন প্রয়োগ করতে পারেন এবং এক্সপ্রেশনটি 10-এর থ্রেশহোল্ড পূরণ করে কিনা তা যাচাই করতে পারেন। আমরা প্রদত্ত উদাহরণগুলিতে এটি সম্পর্কে আরও বুঝতে পারব।





HAVING ক্লজ কীভাবে কাজ করে তা বোঝার জন্য, আসুন একটি নমুনা ডাটাবেস তৈরি করি যা আমরা নিয়ে কাজ করব। আমরা আমাদের ডাটাবেসের নাম রাখি 'রেজিস্টার'।



আমাদের বিভিন্ন কলাম এবং ডেটা টাইপ ধারণ করার জন্য আসুন 'কর্মী' নামে একটি টেবিল তৈরি করি। এখানে, আমরা কর্মীদের ডেটা যেমন নাম, ঘন্টা, কাজের তারিখ ইত্যাদি নিয়ে কাজ করি।

আমাদের টেবিলের বর্ণনা চেক করে, আমরা নিশ্চিত করতে পারি যে সমস্ত কলাম সফলভাবে তৈরি হয়েছে।

আমরা আমাদের টেবিলে মান সন্নিবেশ করান। আমাদের বিভিন্ন কর্মী আছে যারা বিভিন্ন ঘন্টা এবং দিনে কাজ করছে। এই ডেটা ব্যবহার করে, আমরা HAVING ক্লজ প্রয়োগ করতে পারি যেখানে যোগফল থ্রেশহোল্ড অতিক্রম করে।

আমাদের প্রথম উদাহরণের জন্য, আসুন একটি কেস বিবেচনা করি যেখানে আমরা সবচেয়ে বেশি ঘন্টা কাজ করেছেন এমন কর্মীদের খুঁজে পেতে চাই। HAVING ক্লজের জন্য, ঘন্টার জন্য সমষ্টি ফাংশন অন্তর্ভুক্ত করুন। GROUP BY ক্লজে, থ্রেশহোল্ডের চেয়ে বেশি মোট ঘন্টা সহ কর্মীদের শ্রেণীবদ্ধ করতে সাহায্য করার জন্য নাম সারি ব্যবহার করে আমরা সারিগুলিকে গোষ্ঠীবদ্ধ করি।

যদি আমাদের মোট ঘন্টার জন্য আমাদের থ্রেশহোল্ড 7 হিসাবে থাকে, আমরা আমাদের কমান্ডটি নিম্নরূপ কার্যকর করি:

নাম নির্বাচন করুন, যোগফল(ঘন্টা) হিসাবে মোট_ঘন্টা_প্রতি_ব্যক্তি কর্মীদের থেকে নাম অনুসারে গ্রুপ করুন যোগফল(ঘন্টা) > 7;

কমান্ডটি কার্যকর করার মাধ্যমে, আমরা একটি আউটপুট পাই যার মধ্যে দুটি সারি রয়েছে যেহেতু শুধুমাত্র দুটি কর্মী HAVING ক্লজে উল্লেখিত থ্রেশহোল্ড অতিক্রম করেছে।

ধরুন আমরা বিভাগগুলিকে শ্রেণীবদ্ধ করতে চাই যাতে শ্রমিকরা 7 ঘন্টার থ্রেশহোল্ডের চেয়ে বেশি ঘন্টা কাজ করে। আমরা বিভাগটি নির্বাচন করি, তারপর ঘন্টার সাথে SUM সমষ্টি ফাংশনটি ব্যবহার করি এবং বিভাগ অভিব্যক্তি ব্যবহার করে সারিগুলিকে গোষ্ঠীভুক্ত করি।

আমাদের আদেশ নিম্নরূপ:

বিভাগ নির্বাচন করুন, মোট_ঘন্টা_প্রতি_বিভাগ হিসাবে মোট_ঘণ্টা_প্রতি_বিভাগের কর্মীদের গ্রুপ অনুযায়ী যোগফল (ঘন্টা) > 7;

ফলাফলগুলি থেকে, আমরা যাচাই করতে পারি যে আমরা সারিগুলিকে ফিল্টার করতে পেরেছি যাতে আমাদের থ্রেশহোল্ডের চেয়ে বেশি ঘন্টার যোগফল থাকে।

একইভাবে, যদি আমরা 10 ঘন্টার থ্রেশহোল্ড অতিক্রম করার জন্য সর্বাধিক সংখ্যক কর্মরত কর্মীদের সাথে কাজের তারিখ ফিল্টার করতে চাই, আমরা কাজের তারিখের অভিব্যক্তিটি নির্বাচন করি। তারপর, আমরা ঘন্টার সাথে SUM ফাংশন ব্যবহার করি এবং কাজের তারিখ ব্যবহার করে সারিগুলিকে গোষ্ঠীবদ্ধ করি।

কমান্ডটি নিম্নরূপ:

কাজের তারিখ নির্বাচন করুন, যোগফল(ঘন্টা) হিসাবে কর্মীদের থেকে সর্বোচ্চ_ঘণ্টা_কাজ করা হয়েছে কাজের তারিখ অনুসারে সমষ্টি(ঘন্টা) > 10;

কমান্ডটি কার্যকর করার পরে, ফলাফলগুলি দেখায় যে শুধুমাত্র একটি কাজের তারিখের মোট ঘন্টার যোগফল রয়েছে যা প্রান্তিক অতিক্রম করেছে:

উপসংহার

MySQL HAVING ক্লজ ব্যবহার করা হয় যখন আপনি একটি সমষ্টি ফাংশন ব্যবহার করে একটি ফিল্টার কোয়েরি চালাতে চান। আরও নির্দিষ্ট ক্যোয়ারী চালানোর জন্য এটি GROUP BY ক্লজের সাথে মিলিত হয়। এই পোস্টে MySQL-এর ক্লজ সম্পর্কে সব কিছু বিস্তারিত বলা হয়েছে যেখানে যোগফল থ্রেশহোল্ডের চেয়ে বেশি। প্রদত্ত উদাহরণগুলির সাহায্যে, আপনি এখন বুঝতে পারছেন কিভাবে MySQL HAVING clause দিয়ে কাজ করতে হয়।