Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> SQL

एसक्यूएल होने

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 क्लॉज़ एक सबफ़िल्टर है जो डेटाबेस पर कुछ अतिरिक्त क्वेरी कार्य करने के लिए एक समग्र फ़ंक्शन का उपयोग करता है।

इस अद्वितीय खंड के ज्ञान को बढ़ाने के लिए अन्य समग्र कार्यों के साथ प्रयोग करें!


  1. SQL सर्वर में क्लॉज होना

    HAVING क्लॉज का उपयोग SQL सर्वर (Transact-SQL) में GROUP BY क्लॉज के साथ संयोजन के रूप में किया जाता है ताकि लौटाई गई पंक्तियों के समूह को सीमित किया जा सके, केवल तभी जब शर्त पूरी हो। SQL सर्वर में क्लॉज सिंटैक्स होना SELECT bie uthuc1, bieuthuc2, … bieuthuc_n, ham_tong (bieuthuc) FROM bang [

  1. एमएस एसक्यूएल सर्वर क्या है?

    एसक्यूएल सर्वर क्या है? आरडीबीएमएस पर आधारित माइक्रोसॉफ्ट द्वारा विकसित सॉफ्टवेयर। एक ORDBMS (ऑब्जेक्ट रिलेशनल डेटाबेस मैनेजमेंट सिस्टम) भी है। एक स्वतंत्र मंच। सॉफ्टवेयर कमांड लाइन इंटरफेस और जीयूआई इंटरफेस दोनों का उपयोग करता है। SQL भाषा समर्थन (पूर्व में SEQUEL - संरचित अंग्रेजी क्वेरी भाषा) -

  1. एसक्यूएल संगरोध

    यह ब्लॉग पोस्ट SQL संगरोध की अवधारणा का परिचय देता है। Oracle® संसाधन प्रबंधक का उपयोग करके, आप CPU और I/O जैसे अन्य संसाधनों के उपयोग को विनियमित और सीमित कर सकते हैं। सबसे दिलचस्प तथ्य यह है कि आप किसी भी लंबे समय से चल रही क्वेरी के निष्पादन को रोक सकते हैं जो एक निर्धारित सीमा से अधिक है। एसक्यू