SQL GROUP BY বিবৃতিটি সমষ্টিগত ফাংশনে উপস্থিত হয়। এটি একটি নির্দিষ্ট কলাম দ্বারা একটি ক্যোয়ারী থেকে আপনি নির্বাচন করা ডেটা সমন্বিত করতে ব্যবহৃত হয়। আপনি একাধিক কলাম নির্দিষ্ট করতে পারেন যেগুলিকে GROUP BY স্টেটমেন্ট ব্যবহার করে গোষ্ঠীবদ্ধ করা হবে৷৷
আপনি যখন SQL-এ সমষ্টিগত ফাংশন নিয়ে কাজ করছেন, তখন সাধারণ কলামের মান অনুসারে সারিগুলিকে একত্রে গোষ্ঠীবদ্ধ করার প্রয়োজন হয়৷
উদাহরণস্বরূপ, বলুন আপনি আপনার ব্যবসার জন্য শাখার নামের একটি তালিকা পেতে চান। এই তথ্যের পাশে আপনি সেই শাখাগুলির জন্য কাজ করেন এমন কর্মচারীর সংখ্যা দেখতে চান। আপনাকে শাখার নাম অনুসারে একটি সমষ্টিগত ফাংশন এবং গ্রুপ ব্যবহার করতে হবে।
সেখানেই SQL GROUP BY ধারা আসে। এই টিউটোরিয়ালে, আমরা আলোচনা করতে যাচ্ছি কিভাবে GROUP BY ব্যবহার করতে হয় ধারা।
এগ্রিগেট ফাংশন রিফ্রেশার
প্রায়শই-যখন আপনি একটি ডাটাবেসের সাথে কাজ করছেন-আপনি ডাটাবেসের মধ্যে প্রকৃত ডেটা দেখতে চান না। পরিবর্তে, আপনি ডেটা সম্পর্কে তথ্য চাইতে পারেন। উদাহরণস্বরূপ, আপনি আপনার ব্যবসার বিক্রিত অনন্য পণ্যের সংখ্যা বা লিডারবোর্ডে সর্বোচ্চ স্কোর জানতে চাইতে পারেন।
SQL-এ বিল্ট-ইন অনেকগুলি ফাংশন রয়েছে৷ যে আপনি এই তথ্য পেতে অনুমতি দেয়. এগুলোকে বলা হয় সমষ্টিগত ফাংশন।
উদাহরণস্বরূপ, ধরা যাক আপনি কতজন কর্মচারী বিক্রয় সহযোগী তা জানতে চেয়েছিলেন, আপনি COUNT ব্যবহার করতে পারেন ফাংশন COUNT ফাংশন একটি নির্দিষ্ট মানদণ্ড পূরণ করে এমন সারির সংখ্যা গণনা করে এবং প্রদান করে। অন্যান্য সমষ্টিগত ফাংশনগুলির মধ্যে রয়েছে SUM, AVG, MIN এবং MAX৷
৷আপনি যদি সমষ্টিগত ফাংশন সম্পর্কে আরও জানতে চান, তাহলে আমাদের এসকিউএল এগ্রিগেট ফাংশন গাইড পড়ুন।
81% অংশগ্রহণকারী বলেছেন যে তারা বুটক্যাম্পে যোগ দেওয়ার পরে তাদের প্রযুক্তিগত কাজের সম্ভাবনা সম্পর্কে আরও আত্মবিশ্বাসী বোধ করেছেন। আজই একটি বুটক্যাম্পের সাথে মিলিত হন৷
৷গড় বুটক্যাম্প গ্র্যাড একটি বুটক্যাম্প শুরু করা থেকে শুরু করে তাদের প্রথম চাকরি খোঁজা পর্যন্ত ক্যারিয়ারের পরিবর্তনে ছয় মাসেরও কম সময় কাটিয়েছে।
SQL গ্রুপ দ্বারা
SQL GROUP BY ক্লজ সারি সমন্বিত করে। GROUP BY ধারাগুলি এমন প্রশ্নের মধ্যে সাধারণ যেগুলি MIN এবং MAX-এর মতো সমষ্টিগত ফাংশন ব্যবহার করে৷ GROUP BY বিবৃতি SQL কে বলে যে আপনি যেকোন নন-এগ্রিগেট কলামে কিভাবে তথ্য একত্রিত করবেন।
GROUP BY স্টেটমেন্টের সিনট্যাক্স হল:
SELECT COUNT(column1_name), column2_name FROM table1_name GROUP BY column2_name;
আমরা আমাদের ক্যোয়ারীতে একটি সমষ্টিগত ফাংশন ব্যবহার করেছি এবং অন্য একটি কলাম নির্দিষ্ট করেছি৷
৷যেকোন প্রশ্নের ক্ষেত্রে এটি হয়, আমাদের একটি গ্রুপ বাই স্টেটমেন্ট ব্যবহার করতে হবে। GROUP BY বিবৃতি SQL কে বলে যে কিভাবে শাখা ডেটা প্রদর্শন করতে হয় যদিও এটি সামগ্রিক ফাংশনের বাইরে থাকে। সামগ্রিক ফাংশনে নেই এমন টেবিলের ভিত্তিতে আপনাকে গ্রুপ করতে হবে।
GROUP BY ধারাটি শুধুমাত্র SQL SELECT স্টেটমেন্টে ব্যবহৃত হয়।
এসকিউএল-এ GROUP BY ক্লজের একটি উদাহরণ দেখা যাক।
এসকিউএল উদাহরণ দ্বারা গ্রুপ
ধরা যাক আমরা কর্মশক্তিকে দেওয়া প্রতিটি শিরোনাম সহ মোট কর্মচারীর সংখ্যা খুঁজে পেতে চাই। অন্য কথায়, আমরা জানতে চাই আমাদের কতজন সেলস অ্যাসোসিয়েট আছে, কতজন মার্কেটিং ডিরেক্টর আছে ইত্যাদি।
আমরা এই তথ্য পুনরুদ্ধার করতে নিম্নলিখিত ক্যোয়ারী ব্যবহার করতে পারি:
SELECT title, COUNT(title) FROM employees GROUP BY title;
প্রশ্নটি একাধিক রেকর্ড প্রদান করে:
শিরোনাম | গণনা |
সিনিয়র সেলস অ্যাসোসিয়েট | 1 |
সেলস অ্যাসোসিয়েট | 4 |
ভাইস প্রেসিডেন্ট অফ সেলস | 1 |
মার্কেটিং ডিরেক্টর | 1 |
(৪টি সারি)
আমাদের গ্রুপ বাই ক্যোয়ারী কর্মীদের দ্বারা অনুষ্ঠিত অনন্য শিরোনামের একটি তালিকা ফিরিয়ে দিয়েছে। আমরা প্রতিটি শিরোনামের পাশে সেই শিরোনাম ধারণকারী কর্মচারীর সংখ্যা দেখতে পাচ্ছি।
আপনি কখন SQL-এ একটি GROUP BY ব্যবহার করবেন?
একটি গ্রুপ দ্বারা ধারাটি শুধুমাত্র তখনই প্রয়োজনীয় যখন আপনি সমষ্টিগত ফাংশন থেকে যা ফেরত এসেছে তার চেয়ে বেশি তথ্য পেতে চান। আমরা এই বিষয়ে একটু আগে আলোচনা করেছি।
আপনি যদি আপনার কাছে থাকা গ্রাহকদের সংখ্যা পেতে চান তবে আপনাকে শুধুমাত্র একটি নিয়মিত অনুসন্ধান চালাতে হবে। এখানে একটি প্রশ্নের উদাহরণ যা এই তথ্যটি ফিরিয়ে দেবে:
SELECT COUNT(name) FROM customers;
আমাদের ক্যোয়ারী ফলাফল এবং রিটার্ন গ্রুপ করে:
গণনা |
7 |
(1 সারি)
আপনি যদি জানতে চান আপনার প্রতিটি লয়্যালটি প্ল্যানে কতজন গ্রাহক আছে, আপনাকে একটি GROUP BY ব্যবহার করতে হবে বিবৃতি এখানে একটি প্রশ্নের উদাহরণ দেওয়া হল যা লয়্যালটি প্ল্যানের তালিকা এবং প্রতিটি প্ল্যানে গ্রাহকের সংখ্যা পাবে:
SELECT loyalty_plan, COUNT(loyalty_plan) FROM customers GROUP BY loyalty_plan;
আমাদের ক্যোয়ারী ডেটা সংগ্রহ করে। তারপর, আমাদের প্রশ্ন ফিরে আসে:
loyalty_plan | গণনা |
সোনা | 1 |
কোনটিই নয় | 3 |
সিলভার | 1 |
ব্রোঞ্জ | 2 |
(৪টি সারি)
একাধিক কলাম দ্বারা এসকিউএল গ্রুপ
যদি আমরা চাই, আমরা একটি GROUP BY সম্পাদন করতে পারি একাধিক কলামে। উদাহরণস্বরূপ, বলুন আমরা নির্দিষ্ট শিরোনাম সহ প্রতিটি শাখায় আমাদের কতজন কর্মচারী রয়েছে তার একটি তালিকা পেতে চাই। আমরা নিম্নলিখিত ক্যোয়ারী ব্যবহার করে এই ডেটা পুনরুদ্ধার করতে পারি:
SELECT branch, title, COUNT(title) FROM employees GROUP BY branch, title;
আমাদের ক্যোয়ারী ফলাফল সেট দেখায়:
শাখা | শিরোনাম | গণনা |
স্টামফোর্ড | সেলস অ্যাসোসিয়েট | 1 |
আলবানি | সেলসের ভাইস প্রেসিডেন্ট | 1 |
সান ফ্রান্সিসকো | সেলস অ্যাসোসিয়েট | 1 |
সান ফ্রান্সিসকো | সিনিয়র সেলস অ্যাসোসিয়েট | 1 |
আলবানি | মার্কেটিং ডিরেক্টর | 1 |
বোস্টন | সেলস অ্যাসোসিয়েট | 2 |
(6 সারি)
আমাদের ক্যোয়ারী প্রতিটি কর্মচারীর হাতে থাকা শিরোনামের একটি তালিকা তৈরি করে। আমরা সেই উপাধি ধারণকারী লোকের সংখ্যা দেখতে পাচ্ছি। আমাদের ডেটা প্রতিটি কর্মচারী যে শাখার জন্য কাজ করে এবং তাদের শিরোনাম দ্বারা গোষ্ঠীবদ্ধ।
উপসংহার
SQL GROUP BY যে কোনো বিবৃতিতে clause আবশ্যক যেখানে একটি সমষ্টিগত ফাংশন ব্যবহার করা হয় এবং একটি অতিরিক্ত টেবিল জিজ্ঞাসা করা হয়। আপনি উল্লিখিত কলাম দ্বারা গোষ্ঠীবদ্ধ করা উচিত int তিনি মোট ফাংশন.
আপনি একটি চ্যালেঞ্জ খুঁজছেন? প্রতিটি শাখায় কতজন কর্মচারী কাজ করে তা খুঁজে বের করে এমন একটি বিবৃতি লিখুন।
টেবিলটিকে "কর্মচারী" বলা হয় এবং যে কলামে শাখার নাম সংরক্ষণ করা হয় সেটি হল "শাখা"। উপরের টিউটোরিয়ালটিতে ফিরে যান এবং দেখুন আমরা যা আলোচনা করেছি তার উপর ভিত্তি করে আপনার প্রশ্নটি অর্থপূর্ণ কিনা।
কিভাবে SQL শিখতে হয় সে সম্পর্কে আমরা একটি সম্পূর্ণ গাইড লিখেছি। এই নির্দেশিকাটি নতুনদের জন্য উপযুক্ত এবং যারা ইতিমধ্যেই এসকিউএল আয়ত্ত করার পথে রয়েছে। আমাদের কিভাবে SQL পৃষ্ঠা শিখবেন তা দেখুন।