SQL में विभिन्न प्रकार के ऑपरेशन होते हैं जिनका उपयोग डेटाबेस में क्वेरी करने के लिए किया जाता है। SQL का HAVING स्टेटमेंट प्रारंभिक क्वेरी के शीर्ष पर एक सबक्वेरी की तरह काम करता है। यह अच्छी तरह से काम करता है जब आपके पास भारी मात्रा में प्रविष्टियां होती हैं जिनमें एक मान समान होता है और आप इसे और फ़िल्टर करना चाहते हैं। इस लेख में, हम यह देखने के लिए एक नज़र डालते हैं कि यह कैसे काम करता है।
तैयारी
MySQL का उपयोग करते हुए इस SQL Fiddle में, मैंने इन उदाहरणों के लिए उपयोग किया जाने वाला एक नमूना स्कीमा बनाया है।
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 का उपयोग करने की सलाह देता हूं। आप इस पद्धति का उपयोग करके अपने डेटाबेस स्कीमा को बहुत ही सरलता से तैयार कर सकते हैं।
होने का उपयोग कैसे करें
SELECT COUNT(id), car_make FROM Cars GROUP BY car_make HAVING COUNT(id) > 0;
HAVING का उपयोग तब करें जब आपको एक समग्र फ़ंक्शन का उपयोग करने की आवश्यकता हो और WHERE क्लॉज का उपयोग नहीं किया जा सकता है। एक समग्र कार्य वे कार्य होते हैं जो किसी प्रकार का संचालन करते हैं और एक मान लौटाते हैं। COUNT, AVG, या SUM सोचें। ऊपर दिया गया कोड लौटाता है:
COUNT(id) | car_make |
1 | ऑडी |
1 | बीएमडब्ल्यू |
1 | ब्यूक |
3 | शेवरले |
3 | फोर्ड |
1 | होंडा |
1 | हुंडई |
3 | जीप |
1 | किआ |
1 | लेम्बोर्गिनी |
1 | मसेराती |
1 | माज़्दा |
1 | मर्सिडीज-बेंज |
1 | ओल्ड्समोबाइल |
1 | पोंटिएक |
1 | पोर्श |
1 | शनि |
1 | सुजुकी |
1 | टोयोटा |
हम मौजूद car_makes के sql COUNT को हथियाने के लिए एक चुनिंदा स्टेटमेंट का उपयोग करते हैं और उन्हें car_make द्वारा अलग करने के लिए क्लॉज द्वारा एक समूह।
81% प्रतिभागियों ने कहा कि बूटकैंप में भाग लेने के बाद उन्हें अपनी तकनीकी नौकरी की संभावनाओं के बारे में अधिक आत्मविश्वास महसूस हुआ। आज ही एक बूटकैंप से मिलान करें।
बूटकैंप शुरू करने से लेकर अपनी पहली नौकरी खोजने तक, औसत बूटकैंप ग्रेड ने करियर संक्रमण में छह महीने से भी कम समय बिताया।
यही सब है इसके लिए! एक अनुस्मारक के रूप में, SQL क्वेरी में HAVING क्लॉज़ एक सबफ़िल्टर है जो डेटाबेस पर कुछ अतिरिक्त क्वेरी कार्य करने के लिए एक समग्र फ़ंक्शन का उपयोग करता है।
इस अद्वितीय खंड के ज्ञान को बढ़ाने के लिए अन्य समग्र कार्यों के साथ प्रयोग करें!