এসকিউএল-এর বিভিন্ন ধরনের ক্রিয়াকলাপ রয়েছে যা একটি ডাটাবেসে প্রশ্ন করতে ব্যবহৃত হয়। SQL এর HAVING স্টেটমেন্ট একটি প্রাথমিক প্রশ্নের উপরে একটি সাবকোয়েরির মত কাজ করে। এটি ভালভাবে কাজ করে যখন আপনার কাছে প্রচুর পরিমাণে এন্ট্রি থাকে যার একটি মান সাধারণ থাকে এবং আপনি এটিকে আরও ফিল্টার করতে চান। এই নিবন্ধে, আমরা এটি কিভাবে কাজ করে তা দেখতে এক নজরে দেখি।
প্রস্তুতি
MySQL ব্যবহার করে এই SQL ফিডলে, আমি এই উদাহরণগুলির জন্য ব্যবহৃত একটি নমুনা স্কিমা তৈরি করেছি।
create table Cars ( id INT PRIMARY KEY, year VARCHAR(50), car_make VARCHAR(50), car_model VARCHAR(50) );
এটি "কার" নামে একটি টেবিল তৈরি করে এবং একটি স্কিমা রয়েছে যা প্রতিটি গাড়ির তৈরি মডেল এবং বছর দেখে। পরবর্তী ব্লক সেই কলামগুলিতে মান সন্নিবেশ করায়:
insert into Cars (id, year, car_make, car_model) values (1, 2011, 'Mazda', 'Miata MX-5'); insert into Cars (id, year, car_make, car_model) values (2, 1969, 'Ford', 'Mustang'); insert into Cars (id, year, car_make, car_model) values (3, 2007, 'Toyota', '4Runner'); insert into Cars (id, year, car_make, car_model) values (4, 2013, 'Porsche', '911'); insert into Cars (id, year, car_make, car_model) values (5, 1991, 'Buick', 'Coachbuilder'); insert into Cars (id, year, car_make, car_model) values (6, 2007, 'Kia', 'Sportage'); insert into Cars (id, year, car_make, car_model) values (7, 1997, 'Oldsmobile', 'Cutlass Supreme'); insert into Cars (id, year, car_make, car_model) values (8, 2003, 'BMW', '7 Series'); insert into Cars (id, year, car_make, car_model) values (9, 1996, 'Ford', 'F150'); insert into Cars (id, year, car_make, car_model) values (10, 1992, 'Suzuki', 'SJ'); insert into Cars (id, year, car_make, car_model) values (11, 2001, 'Jeep', 'Grand Cherokee'); insert into Cars (id, year, car_make, car_model) values (12, 2000, 'Ford', 'F250'); insert into Cars (id, year, car_make, car_model) values (13, 2003, 'Honda', 'Insight'); insert into Cars (id, year, car_make, car_model) values (14, 2006, 'Chevrolet', 'HHR Panel'); insert into Cars (id, year, car_make, car_model) values (15, 1987, 'Mercedes-Benz', 'S-Class'); insert into Cars (id, year, car_make, car_model) values (16, 2004, 'Chevrolet', 'SSR'); insert into Cars (id, year, car_make, car_model) values (17, 1990, 'Maserati', '228'); insert into Cars (id, year, car_make, car_model) values (18, 2005, 'Saturn', 'Ion'); insert into Cars (id, year, car_make, car_model) values (19, 1987, 'Audi', '5000CS'); insert into Cars (id, year, car_make, car_model) values (20, 1999, 'Chevrolet', 'S10'); insert into Cars (id, year, car_make, car_model) values (21, 2007, 'Jeep', 'Liberty'); insert into Cars (id, year, car_make, car_model) values (22, 2002, 'Lamborghini', 'Murciélago'); insert into Cars (id, year, car_make, car_model) values (23, 2000, 'Hyundai', 'Tiburon'); insert into Cars (id, year, car_make, car_model) values (24, 2011, 'Jeep', 'Patriot'); insert into Cars (id, year, car_make, car_model) values (25, 1985, 'Pontiac', 'Sunbird');
আপনি যদি এই অনুশীলনের জন্য আপনার নিজের ডেটা উপহাস করতে চান তবে আমি এটি করার জন্য mockaroo.com ব্যবহার করার পরামর্শ দিই। আপনি এই পদ্ধতিটি ব্যবহার করে আপনার ডাটাবেস স্কিমা গঠন করতে পারেন।
HAVING কিভাবে ব্যবহার করবেন
SELECT COUNT(id), car_make FROM Cars GROUP BY car_make HAVING COUNT(id) > 0;
যখন আপনাকে একটি সমষ্টিগত ফাংশন ব্যবহার করতে হবে তখন HAVING ব্যবহার করুন এবং WHERE clause ব্যবহার করা যাবে না। একটি সমষ্টিগত ফাংশন হল সেই ফাংশনগুলি যা কিছু ধরণের অপারেশন করে এবং একটি একক মান প্রদান করে। COUNT, AVG, বা SUM ভাবুন৷ উপরের কোডটি ফিরে আসে:
COUNT(id) | কার_মেক |
1 | অডি |
1 | BMW |
1 | বুইক |
3 | শেভ্রোলেট |
3 | ফোর্ড |
1 | হোন্ডা |
1 | Hyundai |
3 | জিপ |
1 | কিয়া |
1 | ল্যাম্বরগিনি |
1 | মাসেরতি |
1 | মাজদা |
1 | মার্সিডিজ-বেঞ্জ |
1 | Oldsmobile |
1 | পন্টিয়াক |
1 | পোর্শে |
1 | শনি |
1 | সুজুকি |
1 | টয়োটা |
আমরা বিদ্যমান car_makeগুলির sql COUNTটি দখল করতে একটি নির্বাচন বিবৃতি ব্যবহার করি এবং একটি দলকে ধারা দ্বারা পৃথক করতে তাদের car_make দ্বারা পৃথক করি।
81% অংশগ্রহণকারী বলেছেন যে তারা বুটক্যাম্পে যোগ দেওয়ার পরে তাদের প্রযুক্তিগত কাজের সম্ভাবনা সম্পর্কে আরও আত্মবিশ্বাসী বোধ করেছেন। আজই একটি বুটক্যাম্পের সাথে মিলিত হন৷
৷গড় বুটক্যাম্প গ্র্যাড একটি বুটক্যাম্প শুরু করা থেকে শুরু করে তাদের প্রথম চাকরি খোঁজা পর্যন্ত ক্যারিয়ারের পরিবর্তনে ছয় মাসেরও কম সময় ব্যয় করেছে।
এখানেই শেষ এটা পেতে ওখানে যাও! একটি অনুস্মারক হিসাবে, একটি SQL ক্যোয়ারীতে HAVING ক্লজ হল একটি সাবফিল্টার যা একটি ডাটাবেসে কিছু অতিরিক্ত ক্যোয়ারী কাজ সম্পাদন করতে একটি সমষ্টিগত ফাংশন ব্যবহার করে।
এই অনন্য ধারার জ্ঞান বাড়াতে অন্যান্য সমষ্টিগত ফাংশনগুলির সাথে পরীক্ষা করুন!