अपनी डेटाबेस क्वेरीज़ को बेहतर बनाने के लिए SQL सबक्वेरीज़ में महारत हासिल करें। कोरिलेटेड, नॉन-कोरिलेटेड और रिकर्सिव सबक्वेरीज़ के बारे में जानें। निष्पादन क्रम और SQL सबक्वेरीज़ को अन्य SQL फ़ीचर्स के साथ मिलाने का तरीका सीखें।
SQL सबक्वेरियाँ डेटाबेस प्रबंधन में एक शक्तिशाली उपकरण हैं, जो अधिक जटिल और कुशल डेटा रिट्रीवल संभव बनाती हैं। यह गाइड आपको SQL सबक्वेरियों की बुनियादी समझ देगा, साथ ही उनके व्यावहारिक उपयोग और उन्नत तकनीकों पर रोशनी डालेगा। चाहे आप शुरुआती हों या अनुभवी पेशेवर, सबक्वेरियों में महारत आपके SQL कौशल को उल्लेखनीय रूप से बढ़ा सकती है।
जो लोग SQL में नए हैं, वे मजबूत नींव के लिए हमारे Intermediate SQL कोर्स से शुरू करने पर विचार करें। साथ ही, मुझे SQL Basics Cheat Sheet उपयोगी लगता है, जिसे आप डाउनलोड कर सकते हैं—इसमें सबसे आम SQL फ़ंक्शन्स एक जगह मिल जाते हैं। अंत में, मैं कहना चाहूँगा कि सबक्वेरियाँ एक आम SQL इंटरव्यू प्रश्न हैं, तो यदि आप इंटरव्यू की तैयारी कर रहे हैं, तो समीक्षा के लिए आप सही जगह पर हैं।
SQL सबक्वेरी क्या है?
सबक्वेरी कई अलग-अलग क्वेरियों की आवश्यकता वाले कार्यों को संभालकर SQL क्वेरियों को अधिक मॉड्यूलर बनाती है।
परिभाषा और उद्देश्य
SQL सबक्वेरी एक ऐसी क्वेरी है जो किसी दूसरी SQL क्वेरी के भीतर नेस्टेड होती है, और ऐसे ऑपरेशन्स के लिए उपयोग होती है जिनमें कई चरण या जटिल लॉजिक शामिल हो। SQL में सबक्वेरियों की भूमिकाएँ निम्नलिखित हैं:
संबंधित टेबलों के डेटा के आधार पर रिकॉर्ड्स को फ़िल्टर करना।
डेटा का एग्रीगेशन करना और गतिशील रूप से गणनाएँ करना।
टेबलों के बीच डेटा का क्रॉस-रेफ़रेंस करना ताकि विशिष्ट इनसाइट्स प्राप्त हों।
बिना स्पष्ट जॉइन या बाहरी कोड लॉजिक के शर्तानुसार पंक्तियाँ चुनना।
यह बहुत कुछ लगता है, लेकिन ट्यूटोरियल में जैसे-जैसे हम आगे बढ़ेंगे, सब स्पष्ट हो जाएगा।
सबक्वेरियों के प्रकार
यह जानकर आपको आश्चर्य हो सकता है कि सबक्वेरियों के अलग-अलग प्रकार होते हैं। अलग-अलग प्रकार विभिन्न डेटा रिट्रीवल आवश्यकताओं के अनुरूप समूहबद्ध किए जाते हैं। आप जिस ऑपरेशन को करना चाहते हैं, उसके आधार पर आप निम्न सबक्वेरियों में से चुन सकते हैं:
स्केलर सबक्वेरियाँ
स्केलर सबक्वेरियाँ एक अकेला मान लौटाती हैं, जैसे एक रो और एक कॉलम। इन्हें अक्सर वहाँ उपयोग किया जाता है जहाँ एक एकल मान अपेक्षित हो, जैसे गणनाओं, तुलना, या SELECT या WHERE क्लॉज़ में असाइनमेंट्स में।
नीचे दिए उदाहरण में, स्केलर सबक्वेरी (SELECT AVG(salary) FROM employees) एक मान—औसत सैलरी—लौटाती है और उसे प्रत्येक कर्मचारी की सैलरी से तुलना करती है।
-- Example of Scalar Subquery -- Compares each salary to the average salarySELECT employee_name,
salary,(SELECTAVG(salary)FROM employees)AS average_salary
FROM employees
WHERE salary >(SELECTAVG(salary)FROM employees);संचालित द्वारा
कॉलम सबक्वेरियाँ
कॉलम सबक्वेरियाँ एक कॉलम परंतु कई पंक्तियाँ लौटाती हैं। इन्हें प्रायः IN या ANY जैसे ऑपरेटर्स के साथ उपयोग किया जाता है, जहाँ बाहरी क्वेरी कई पंक्तियों से आए मानों की तुलना करती है।
उदाहरण के लिए, नीचे दी गई सबक्वेरी न्यूयॉर्क में स्थित डिपार्टमेंट्स के department ID की सूची लौटाती है, जिसे मुख्य क्वेरी उन डिपार्टमेंट्स के कर्मचारियों को फ़िल्टर करने के लिए उपयोग करती है।
-- Example of Column Subquery -- Filters based on departments in New YorkSELECT employee_name
FROM employees
WHERE department_id IN(SELECT department_id FROM departments WHERE location ='New York');संचालित द्वारा
रो सबक्वेरियाँ
रो सबक्वेरियाँ कई कॉलमों सहित एक ही पंक्ति लौटाती हैं। जब एकाधिक मान अपेक्षित हों, तो ये सबक्वेरियाँ सामान्यतः ऐसे तुलना ऑपरेटर्स के साथ उपयोग होती हैं जो डेटा की पंक्ति की तुलना कर सकें, जैसे = या IN।
निम्नलिखित सबक्वेरी किसी प्रबंधक का डिपार्टमेंट और जॉब टाइटल प्राप्त करती है, और बाहरी क्वेरी मेल खाते मानों वाले कर्मचारियों को ढूँढ़ती है।
-- Example of Row Subquery -- Matches department and job title with a specific managerSELECT employee_name
FROM employees
WHERE(department_id, job_title)=(SELECT department_id, job_title FROM managers WHERE manager_id =1);संचालित द्वारा
टेबल सबक्वेरियाँ (डेराइव्ड टेबल्स)
टेबल सबक्वेरियाँ, या डेराइव्ड टेबल्स, कई पंक्तियों और कॉलमों वाली एक पूर्ण टेबल लौटाती हैं। इन्हें आमतौर पर FROM क्लॉज़ में किसी क्वेरी के भीतर अस्थायी टेबल के रूप में उपयोग किया जाता है।
उदाहरण के लिए, नीचे दी गई सबक्वेरी डिपार्टमेंट के अनुसार औसत सैलरी की डेराइव्ड टेबल बनाती है, जिसे फिर बाहरी क्वेरी एक निर्दिष्ट थ्रेशहोल्ड से ऊपर औसत सैलरी वाले डिपार्टमेंट्स को ढूँढ़ने के लिए उपयोग करती है।
-- Example of Table Subquery -- Uses derived table for average department salary comparisonSELECT dept_avg.department_id, dept_avg.avg_salary
FROM(SELECT department_id,AVG(salary)AS avg_salary FROM employees GROUPBY department_id)AS dept_avg
WHERE dept_avg.avg_salary >50000;संचालित द्वारा
SQL सबक्वेरियों को समझना
ऊपर के उदाहरणों से, हमने देखा कि सबक्वेरी को कोष्ठक में बंद किया जाता है। अब हम सबक्वेरी की कार्यप्रणाली, उसके सिंटैक्स और एक्जीक्यूशन क्रम को समझते हैं।
सिंटैक्स और संरचना
सबक्वेरी का सिंटैक्स इस पर निर्भर करता है कि उसे मुख्य SQL स्टेटमेंट में कहाँ उपयोग किया गया है, जैसे SELECT, FROM, या WHERE क्लॉज़ के भीतर। सबक्वेरियाँ आमतौर पर कोष्ठक ( ) में घिरी होती हैं, जो एक अलग क्वेरी को दर्शाती हैं।
निम्न उदाहरण WHERE क्लॉज़ के भीतर एक सबक्वेरी को दर्शाता है, जो हमें नेस्टेड क्वेरी के परिणामों के आधार पर मुख्य क्वेरी में डेटा फ़िल्टर करने देता है।
-- Selects the main column to retrieve from the main table to querySELECT column_name
FROM table_name
-- Applies a condition to filter rows based on the subquery resultWHERE column_name operator
-- Subquery retrieves data for comparison in the WHERE clause(SELECT column_name FROM table_name WHERE condition);संचालित द्वारा
एक्जीक्यूशन क्रम
सबक्वेरियों का एक्जीक्यूशन क्रम इस पर निर्भर करता है कि वे कोरिलेटेड हैं या नॉन-कोरिलेटेड।
नॉन-कोरिलेटेड सबक्वेरियाँ
नॉन-कोरिलेटेड सबक्वेरियाँ बाहरी क्वेरी से स्वतंत्र होती हैं और पहले चलती हैं। इसके बाद सबक्वेरी का परिणाम बाहरी क्वेरी को दिया जाता है। नॉन-कोरिलेटेड सबक्वेरियों का उपयोग अक्सर स्केलर या कॉलम-स्तरीय गणनाओं और फ़िल्टर्स के लिए किया जाता है।
नीचे दी गई क्वेरी इस क्रम का पालन करती है:
सबक्वेरी (SELECT AVG(salary) FROM employees) पहले चलती है और औसत सैलरी निकालती है।
फिर बाहरी क्वेरी उन कर्मचारियों को प्राप्त करती है जिनकी सैलरी इस औसत से अधिक है।
-- Retrieves names of employees with above-average salarySELECT employee_name
FROM employees
-- Subquery: calculates average salary across all employeesWHERE salary >(SELECTAVG(salary)FROM employees);संचालित द्वारा
ग्रूपिंग, डेटा एग्रीगेशन और टेबल जॉइन के बारे में और जानने के लिए मैं DataCamp का Introduction to SQL Server कोर्स लेने की सलाह देता/देती हूँ।
कोरिलेटेड सबक्वेरियाँ
कोरिलेटेड सबक्वेरियाँ अपने कुछ डेटा के लिए बाहरी क्वेरी पर निर्भर होती हैं, इसलिए वे बाहरी क्वेरी द्वारा प्रोसेस की गई प्रत्येक पंक्ति के लिए पुनः मूल्यांकित की जाती हैं।
निम्न क्वेरी इस क्रम में चलती है:
employees की प्रत्येक पंक्ति (जिसे e1 उपनाम दिया गया है) के लिए, सबक्वेरी (SELECT AVG(e2.salary) FROM employees e2 WHERE e2.department_id = e1.department_id) उस विशेष डिपार्टमेंट की औसत सैलरी की गणना करती है।
फिर बाहरी क्वेरी प्रत्येक कर्मचारी की सैलरी की विभाग की औसत सैलरी से तुलना करती है और केवल उन लोगों को शामिल करती है जो अधिक कमाते हैं।
-- Retrieves names of employees with above-average salary in their departmentSELECT e1.employee_name
FROM employees e1
-- Subquery: calculates average salary for each departmentWHERE e1.salary >(SELECTAVG(e2.salary)FROM employees e2 WHERE e2.department_id = e1.department_id);संचालित द्वारा
SQL सबक्वेरी के उपयोग
SQL सबक्वेरियाँ डेटा रिट्रीवल और ट्रांसफॉर्मेशन के लिए महत्वपूर्ण हैं, जिससे आप जटिल क्वेरियाँ लिख सकें और उन्नत डेटा विश्लेषण कार्य संभाल सकें। नीचे डेटाबेस प्रबंधन में सबक्वेरियों के वास्तविक-जीवन के उपयोग दिए गए हैं।
डेटा फ़िल्टर करना
गतिशील शर्तों के आधार पर डेटा फ़िल्टर करते समय सबक्वेरियाँ उपयोगी होती हैं, खासकर जब फ़िल्टरिंग में कई टेबलों के बीच मानों की तुलना या गणनाएँ करनी हों।
निम्नलिखित सबक्वेरी "Product A" का category_id प्राप्त करती है, और मुख्य क्वेरी उस श्रेणी के सभी उत्पाद ढूँढ़ती है।
-- Retrieves names of products in the same category as 'Product A'SELECT product_name
FROM products
-- Subquery: finds category ID of 'Product A'WHERE category_id =(SELECT category_id FROM products WHERE product_name ='Product A');संचालित द्वारा
डेटा एग्रीगेशन
डेटा एग्रीगेशन के लिए भी सबक्वेरियों का उपयोग होता है, खासकर जब रिपोर्टिंग और विश्लेषण के लिए सार सांख्यिकी या इनसाइट्स बनानी हों। सबक्वेरी (SELECT department_id, AVG(sales) AS avg_sales FROM sales GROUP BY department_id) प्रति डिपार्टमेंट औसत बिक्री की गणना करती है। फिर बाहरी क्वेरी उन डिपार्टमेंट्स को फ़िल्टर करती है जिनकी औसत बिक्री 50,000 से अधिक है।
-- Retrieves department IDs and their average sales-- Filters for departments with average sales over 50,000SELECT department_id, avg_sales
FROM(SELECT department_id,AVG(sales)AS avg_sales FROM sales GROUPBY department_id)AS dept_sales -- Subquery: calculates average sales per departmentWHERE avg_sales >50000;संचालित द्वारा
प्रदर्शन संबंधी विचार और सर्वोत्तम प्रथाएँ
हालाँकि जटिल क्वेरियाँ लिखते समय सबक्वेरियाँ शक्तिशाली होती हैं, वे विशेषकर बड़े डेटा सेट्स के साथ काम करते समय प्रदर्शन पर प्रभाव डाल सकती हैं। बेहतर प्रदर्शन के लिए सामान्य चूकों और सर्वोत्तम प्रथाओं पर विचार करना महत्वपूर्ण है।
सबक्वेरी प्रदर्शन का अनुकूलन
सबक्वेरी प्रदर्शन का अनुकूलन क्वेरी एक्जीक्यूशन समय और डेटाबेस की प्रतिक्रिया क्षमता में सुधार सुनिश्चित करता है। सबक्वेरी को अनुकूलित करने के कुछ तरीके निम्नलिखित हैं।
प्रासंगिक कॉलम्स को इंडेक्स करें: डेटा रिट्रीवल को तेज करने के लिए सुनिश्चित करें कि WHERE और JOIN क्लॉज़ तथा तुलना ऑपरेशन्स में उपयोग किए गए कॉलम्स इंडेक्स्ड हों।
कोरिलेटेड सबक्वेरियों का उपयोग सीमित करें: जहाँ संभव हो, कोरिलेटेड सबक्वेरियों की जगह JOIN ऑपरेशन्स या CTEs का उपयोग करें, क्योंकि वे प्रायः रो-दर-रो के बजाय सेट ऑपरेशन्स से डेटा को तेज़ी से प्रोसेस कर सकती हैं।
सबक्वेरियों में कॉलम्स की संख्या सीमित रखें: केवल आवश्यक कॉलम्स ही चुनें ताकि डेटा रिट्रीवल न्यूनतम हो, मेमोरी उपयोग कम हो, और डेटाबेस एक्जीक्यूशन को बेहतर तरीके से ऑप्टिमाइज़ कर सके।
IN की जगह EXISTS का उपयोग करें: यदि कोई सबक्वेरी बड़ा डेटा सेट लौटाती है, तो IN के बजाय EXISTS का उपयोग प्रदर्शन में सुधार ला सकता है। EXISTS ऑपरेटर जैसे ही मेल खाती पंक्ति मिलती है, क्वेरी प्रोसेसिंग रोक देता है, जबकि IN ऑपरेटर पूरी सबक्वेरी का परिणाम मूल्यांकित करता रहता है।
आम गलतियों से बचना
जब आप सबक्वेरियाँ गलत तरीके से लिखते हैं, तो उनके एक्जीक्यूशन में समस्याएँ आ सकती हैं। आइए देखें कि इन चूकों से कैसे बचा जाए।
अनावश्यक कोरिलेटेड सबक्वेरियों से बचें: कोरिलेटेड सबक्वेरियाँ संसाधन-गहन होती हैं, इसलिए जब परिणाम नॉन-कोरिलेटेड सबक्वेरी या जॉइन से प्राप्त किया जा सकता हो, तो उनका उपयोग न करें।
सबक्वेरियों में NULL मानों के प्रति सतर्क रहें:NULL मान अप्रत्याशित परिणाम दे सकते हैं, खासकर उन सबक्वेरियों में जो IN या = जैसे तुलना ऑपरेटर्स का उपयोग करती हैं। त्रुटियों से बचने के लिए COALESCE का उपयोग कर NULLs को संभालें या सुनिश्चित करें कि तुलना में उपयोग होने वाले कॉलम nullable न हों।
सबक्वेरियों में SELECT * का उपयोग न करें: SELECT * अप्रभावी हो सकता है, क्योंकि यह सभी कॉलम्स लाता है, भले ही उनकी आवश्यकता न हो। इससे मेमोरी उपयोग बढ़ता है और विशेष रूप से बड़े डेटा सेट्स पर क्वेरी धीमी हो सकती है।
अर्थपूर्ण उपनामों का उपयोग करें: अपनी टेबलों और सबक्वेरियों के स्पष्ट नाम रखें ताकि पठनीयता बेहतर हो।
हमारा SQL Server Developer करियर ट्रैक आज़माएँ, जो आपको SQL Server का उपयोग करके अपनी क्वेरियाँ लिखने, डिबग करने और ऑप्टिमाइज़ करने के कौशल से लैस करेगा।
और भी उन्नत SQL सबक्वेरी तकनीकें
जहाँ सबक्वेरियाँ जटिल क्वेरियाँ लिखने का एक कुशल तरीका देती हैं, वहीं हाइरार्किकल डेटा संभालने के उन्नत तरीके भी मौजूद हैं। आइए SQL सबक्वेरियों को लागू करने की उन्नत तकनीकों और रणनीतियों पर नज़र डालें।
रिकर्सिव सबक्वेरियाँ
रिकर्सिव सबक्वेरियाँ (जिन्हें रिकर्सिव कॉमन टेबल एक्सप्रेशन या CTEs भी कहा जाता है) आपको हाइरार्किकल डेटा प्राप्त करने देती हैं, जैसे संगठनात्मक संरचनाएँ, उत्पाद श्रेणियाँ, या ग्राफ-आधारित रिश्ते—जहाँ डेटा की प्रत्येक इकाई किसी अन्य से जुड़ी होती है।
मान लीजिए आपके पास employees नामक टेबल है जिसमें employee_id, manager_id, और employee_name हैं। आप किसी विशिष्ट मैनेजर के अधीन कर्मचारियों की हाइरार्की प्राप्त करना चाहते हैं।
WITH RECURSIVE EmployeeHierarchy AS(-- Anchor Query: Start with the specified managerSELECT employee_id, manager_id, employee_name,1ASlevelFROM employees
-- Assuming the top-level manager has NULL as manager_idWHERE manager_id ISNULLUNIONALL-- Recursive Query: Find employees who report to those in the previous levelSELECT e.employee_id, e.manager_id, e.employee_name, eh.level+1FROM employees e
INNERJOIN EmployeeHierarchy eh ON e.manager_id = eh.employee_id
)SELECT*FROM EmployeeHierarchy;संचालित द्वारा
ऊपर की क्वेरी में:
जिसे मैं एंकर क्वेरी कह रहा/रही हूँ, वह टॉप-लेवल मैनेजर का चयन करती है (जहाँ manager_idNULL हो)।
रिकर्सिव क्वेरी employees को उसी CTE (EmployeeHierarchy) से जॉइन करती है, और प्रत्येक पहले से प्राप्त कर्मचारी को रिपोर्ट करने वाले कर्मचारियों को ढूँढ़ती है।
रिकर्सन तब तक जारी रहता है जब तक आगे रिपोर्ट करने वाले कर्मचारी न मिलें।
अन्य SQL फ़ीचर्स के साथ सबक्वेरीज़ को संयोजित करना
आप सबक्वेरीज़ को विंडो फ़ंक्शंस, CASE स्टेटमेंट्स और ग्रुपिंग फ़ंक्शंस जैसे अन्य SQL फ़ीचर्स के साथ एकीकृत कर सकते हैं। ये संयोजन उन्नत डेटा हेरफेर और अधिक व्यापक रिपोर्टिंग को संभव बनाते हैं।
विंडो फ़ंक्शंस के साथ सबक्वेरीज़ का संयोजन
सबक्वेरीज़ उस डेटासेट को परिष्कृत करने में मदद करती हैं जिस पर विंडो फ़ंक्शंस कार्य करते हैं, जिससे वे रैंकिंग, संचयी योग और मूविंग एवरेज के लिए उपयोगी होती हैं। मान लें कि आप प्रत्येक क्षेत्र के भीतर बिक्री के आधार पर उत्पादों को रैंक करना चाहते हैं। आप संबंधित डेटा चुनने के लिए एक सबक्वेरी का उपयोग कर सकते हैं और फिर रैंकिंग के लिए विंडो फ़ंक्शन लागू कर सकते हैं।
-- Ranks products by sales within each regionSELECT region, product_id, sales,
RANK()OVER(PARTITIONBY region ORDERBY sales DESC)AS sales_rank
-- Subquery: calculates total sales per product in each regionFROM(SELECT region, product_id,SUM(sales)AS sales
FROM sales_data
GROUPBY region, product_id)AS regional_sales;संचालित द्वारा
CASE स्टेटमेंट्स के साथ सबक्वेरीज़ का उपयोग
CASE स्टेटमेंट्स के साथ सबक्वेरीज़ को मिलाने से आप डायनेमिक कैलकुलेशंस के आधार पर जटिल शर्तें लागू कर सकते हैं। नीचे दिया गया क्वेरी उत्पादों को उनकी श्रेणी के औसत बिक्री के सापेक्ष उनकी बिक्री के आधार पर “High”, “Medium” या “Low” परफ़ॉर्मर के रूप में वर्गीकृत करता है।
-- Categorize above-average sales, average sales, and below-average salesSELECT product_id, category_id, sales,CASEWHEN sales >(SELECTAVG(sales)FROM products WHERE category_id = p.category_id)THEN'High'WHEN sales =(SELECTAVG(sales)FROM products WHERE category_id = p.category_id)THEN'Medium'ELSE'Low'ENDAS performance
FROM products AS p;संचालित द्वारा
शर्तीय एग्रीगेशन के लिए एग्रीगेट फ़ंक्शंस के साथ सबक्वेरीज़
आप एग्रीगेट फ़ंक्शंस के भीतर सबक्वेरीज़ का उपयोग करके शर्तीय एग्रीगेट भी निकाल सकते हैं। मान लें कि आप केवल सक्रिय ग्राहकों द्वारा उत्पन्न कुल राजस्व की गणना करना चाहते हैं। नीचे दिए गए उदाहरण में, सबक्वेरी सभी सक्रिय ग्राहकों को प्राप्त करती है। मुख्य क्वेरी तब ऑर्डर्स को केवल सक्रिय ग्राहकों द्वारा दिए गए ऑर्डर्स तक सीमित करती है और इस समूह से कुल राजस्व की गणना करती है।
-- Calculates total revenue from active customersSELECTSUM(order_total)AS active_customer_revenue
FROM orders
-- Subquery: retrieves IDs of active customersWHERE customer_id IN(SELECT customer_id
FROM customers
WHEREstatus='Active');संचालित द्वारा
SQL सबक्वेरीज़ कब उपयोग होती हैं
SQL सबक्वेरीज़ डेटा विश्लेषण के लिए बहुमुखी वास्तविक-जीवन अनुप्रयोग प्रदान करती हैं, इसलिए उनका अक्सर उपयोग होता है। नीचे SQL सबक्वेरीज़ के कुछ उद्योग-विशिष्ट या गणितीय अनुप्रयोग दिए गए हैं। इन विचारों तक पहुँचने के लिए, मैंने ऐसे डेटा विश्लेषण या डेटा इंजीनियरिंग कार्यों के बारे में सोचा जिनमें कई चरणों की आवश्यकता होती है—जो मेरी दृष्टि में, वही क्षेत्र है जहाँ सबक्वेरीज़ वाकई मददगार होती हैं।
उद्योग-विशिष्ट उदाहरण
वित्त, स्वास्थ्य सेवा और रिटेल उद्योगों में सबक्वेरीज़ उपयोगी समाधान दे सकती हैं। यहाँ कुछ विचार हैं:
लोन स्वीकृति के लिए जोखिम आकलन (वित्त): मैं बैंकों को ऋण-से-आय अनुपात और क्रेडिट स्कोर जैसे मेट्रिक्स के साथ जूझते हुए देखता हूँ। इन मेट्रिक्स को सबक्वेरीज़ में नेस्ट करके, विश्लेषक जटिल वित्तीय संकेतकों को बेहतर समझ सकते हैं। उदाहरण के लिए, एक सबक्वेरी विशिष्ट आय वर्गों के भीतर ग्राहकों के लिए औसत ऋण राशि की गणना कर सकती है।
मरीज़ निदान में पैटर्न की पहचान (स्वास्थ्य सेवा): स्वास्थ्य सेवा में रोगी डेटा का प्रबंधन एक बड़ा काम हो सकता है। सबक्वेरीज़ इस जटिलता को तोड़ने में मदद कर सकती हैं। मैं अलग-अलग आयु समूहों या जोखिम कारकों में निदान की आवृत्तियों को ट्रैक करने के लिए सबक्वेरीज़ के उपयोग की कल्पना करता हूँ।
खरीद इतिहास के आधार पर उत्पाद प्लेसमेंट का अनुकूलन (रिटेल): रिटेलर खरीदारी पैटर्न को समझने पर फलते-फूलते हैं। सबक्वेरीज़ नेस्टेड खरीद डेटा दिखाकर यह पहचानने में मदद कर सकती हैं कि कौन से उत्पाद अक्सर साथ खरीदे जाते हैं। इससे परस्पर पूरक वस्तुओं को रणनीतिक रूप से रखने और बिक्री बढ़ाने में मदद मिल सकती है।
गणितीय संदर्भ
सबक्वेरीज़ का उपयोग गणितीय और तार्किक कड़ियों में डेटा पैटर्न और रुझान पहचानने के लिए भी किया जाता है। नीचे कुछ परिदृश्य हैं जहाँ गणित में सबक्वेरीज़ लागू होती हैं।
टाइम-सीरीज़ विश्लेषण के लिए मूविंग एवरेज: समय के साथ रुझानों का विश्लेषण करते समय, सबक्वेरीज़ मूविंग एवरेज की गणना को सरल बना देती हैं। मैं उन्हें नेस्टेड क्वेरीज़ के भीतर विशिष्ट समय विंडो परिभाषित करते हुए देखता हूँ, जिससे डेटा को स्मूद करना और रुझान पहचानना आसान हो जाता है।
स्टैंडर्ड डिविएशन का उपयोग करके आउटलायर की पहचान: आउटलायर ढूँढना कई कामों के लिए महत्वपूर्ण है, जिनमें धोखाधड़ी का पता लगाना भी शामिल है। सबक्वेरीज़ नेस्टेड क्वेरीज़ के भीतर स्टैंडर्ड डिविएशन जैसे व्युत्पन्न मेट्रिक्स की गणना को सीधा बना देती हैं।
सेट थ्योरी की अवधारणाओं का उपयोग: मुझे यह दिलचस्प लगता है कि सबक्वेरीज़ UNION और INTERSECT जैसी सेट थ्योरी ऑपरेशंस को प्रतिबिंबित करती हैं। यह क्षमता कस्टमर रिटेंशन विश्लेषण जैसे कार्यों के लिए उपयुक्त है, जहाँ ग्राहक समूहों के बीच ओवरलैप्स और भिन्नताओं को समझना अधिक बुद्धिमान मार्केटिंग रणनीतियों को आगे बढ़ा सकता है।
निष्कर्ष
SQL सबक्वेरीज़ में महारत हासिल करना डेटा को कुशलतापूर्वक प्रबंधित और विश्लेषित करने की आपकी क्षमता को महत्वपूर्ण रूप से बढ़ा सकता है। उनकी संरचना, उपयोग और सर्वोत्तम तरीकों को समझकर, आप बेहतर प्रदर्शन के लिए अपनी SQL क्वेरीज़ को अनुकूलित कर सकते हैं। साथ ही, मैं कहना चाहूँगा कि सबक्वेरीज़ में दक्षता हासिल करने से SQL लिखना सरल हो जाता है, इसलिए इसे सीखना लाभकारी है।
यदि आप एक दक्ष डेटा विश्लेषक बनना चाहते हैं, तो आवश्यक कौशल सीखने के लिए हमारा Associate Data Analyst in SQL करियर ट्रैक देखें। यदि आप SQL का उपयोग करके प्रोफेशनल डैशबोर्ड बनाना सीखना चाहते हैं, तो Reporting in SQL कोर्स भी उपयुक्त है। अंत में, मैं SQL Associate Certification प्राप्त करने की सलाह देता हूँ ताकि आप डेटा विश्लेषण के लिए SQL के उपयोग में अपनी निपुणता प्रदर्शित कर सकें और अन्य डेटा प्रोफेशनल्स के बीच अलग दिखाई दें।
डेटा एनालिटिक्स, बिज़नेस इंटेलिजेंस और डेटा साइंस में व्यावहारिक अनुभव रखने वाला डेटा साइंस तकनीकी लेखक। मैं SQL, Python, Power BI, Databricks और डेटा इंजीनियरिंग पर व्यावहारिक, उद्योग-केंद्रित सामग्री लिखता/लिखती हूँ, जो वास्तविक दुनिया की एनालिटिक्स कार्य से जुड़ी होती है। मेरी लेखनी तकनीकी गहराई और व्यावसायिक प्रभाव के बीच पुल का काम करती है, जिससे पेशेवरों को डेटा को आत्मविश्वासपूर्ण निर्णयों में बदलने में मदद मिलती है.
SQL सबक्वेरी: सामान्य प्रश्न
SQL सबक्वेरी क्या है?⌄
SQL सबक्वेरी एक ऐसी क्वेरी है जो दूसरी SQL क्वेरी के भीतर नेस्टेड होती है और बहु-चरणीय या जटिल लॉजिक वाले ऑपरेशंस करने के लिए उपयोग होती है।
आप SQL में सबक्वेरी का उपयोग कैसे करते हैं?⌄
सबक्वेरीज़ का उपयोग SQL स्टेटमेंट्स के भीतर डेटा फ़िल्टर करने, गणनाएँ करने या जटिल शर्तों के आधार पर विशिष्ट जानकारी प्राप्त करने के लिए किया जाता है।
SQL में सबक्वेरी के प्रकार क्या हैं?⌄
SQL सबक्वेरीज़ को स्केलर, कॉलम, रो और टेबल सबक्वेरी में वर्गीकृत किया जा सकता है, और प्रत्येक का डेटा प्राप्ति में अलग उपयोग होता है।
सबक्वेरी और जॉइन में क्या अंतर है?⌄
सबक्वेरी एक नेस्टेड क्वेरी है जो जटिल ऑपरेशंस के लिए उपयोग होती है, जबकि जॉइन संबंधित कॉलम्स के आधार पर दो या अधिक टेबल्स की पंक्तियों को संयोजित करता है।
सबक्वेरीज़ SQL क्वेरी प्रदर्शन में कैसे सुधार कर सकती हैं?⌄
सबक्वेरीज़ जटिल क्वेरीज़ को छोटे, प्रबंधनीय भागों में तोड़कर उन्हें सुव्यवस्थित कर सकती हैं, और सही ढंग से उपयोग करने पर प्रदर्शन में सुधार भी संभव है।
SQL सबक्वेरियाँ डेटाबेस प्रबंधन में एक शक्तिशाली उपकरण हैं, जो अधिक जटिल और कुशल डेटा रिट्रीवल संभव बनाती हैं। यह गाइड आपको SQL सबक्वेरियों की बुनियादी समझ देगा, साथ ही उनके व्यावहारिक उपयोग और उन्नत तकनीकों पर रोशनी डालेगा। चाहे आप शुरुआती हों या अनुभवी पेशेवर, सबक्वेरियों में महारत आपके SQL कौशल को उल्लेखनीय रूप से बढ़ा सकती है।
जो लोग SQL में नए हैं, वे मजबूत नींव के लिए हमारे Intermediate SQL कोर्स से शुरू करने पर विचार करें। साथ ही, मुझे SQL Basics Cheat Sheet उपयोगी लगता है, जिसे आप डाउनलोड कर सकते हैं—इसमें सबसे आम SQL फ़ंक्शन्स एक जगह मिल जाते हैं। अंत में, मैं कहना चाहूँगा कि सबक्वेरियाँ एक आम SQL इंटरव्यू प्रश्न हैं, तो यदि आप इंटरव्यू की तैयारी कर रहे हैं, तो समीक्षा के लिए आप सही जगह पर हैं।
SQL सबक्वेरी क्या है?
सबक्वेरी कई अलग-अलग क्वेरियों की आवश्यकता वाले कार्यों को संभालकर SQL क्वेरियों को अधिक मॉड्यूलर बनाती है।
परिभाषा और उद्देश्य
SQL सबक्वेरी एक ऐसी क्वेरी है जो किसी दूसरी SQL क्वेरी के भीतर नेस्टेड होती है, और ऐसे ऑपरेशन्स के लिए उपयोग होती है जिनमें कई चरण या जटिल लॉजिक शामिल हो। SQL में सबक्वेरियों की भूमिकाएँ निम्नलिखित हैं:
यह बहुत कुछ लगता है, लेकिन ट्यूटोरियल में जैसे-जैसे हम आगे बढ़ेंगे, सब स्पष्ट हो जाएगा।
सबक्वेरियों के प्रकार
यह जानकर आपको आश्चर्य हो सकता है कि सबक्वेरियों के अलग-अलग प्रकार होते हैं। अलग-अलग प्रकार विभिन्न डेटा रिट्रीवल आवश्यकताओं के अनुरूप समूहबद्ध किए जाते हैं। आप जिस ऑपरेशन को करना चाहते हैं, उसके आधार पर आप निम्न सबक्वेरियों में से चुन सकते हैं:
स्केलर सबक्वेरियाँ
स्केलर सबक्वेरियाँ एक अकेला मान लौटाती हैं, जैसे एक रो और एक कॉलम। इन्हें अक्सर वहाँ उपयोग किया जाता है जहाँ एक एकल मान अपेक्षित हो, जैसे गणनाओं, तुलना, या
SELECTयाWHEREक्लॉज़ में असाइनमेंट्स में।नीचे दिए उदाहरण में, स्केलर सबक्वेरी
(SELECT AVG(salary) FROM employees)एक मान—औसत सैलरी—लौटाती है और उसे प्रत्येक कर्मचारी की सैलरी से तुलना करती है।कॉलम सबक्वेरियाँ
कॉलम सबक्वेरियाँ एक कॉलम परंतु कई पंक्तियाँ लौटाती हैं। इन्हें प्रायः
INयाANYजैसे ऑपरेटर्स के साथ उपयोग किया जाता है, जहाँ बाहरी क्वेरी कई पंक्तियों से आए मानों की तुलना करती है।उदाहरण के लिए, नीचे दी गई सबक्वेरी न्यूयॉर्क में स्थित डिपार्टमेंट्स के department ID की सूची लौटाती है, जिसे मुख्य क्वेरी उन डिपार्टमेंट्स के कर्मचारियों को फ़िल्टर करने के लिए उपयोग करती है।
रो सबक्वेरियाँ
रो सबक्वेरियाँ कई कॉलमों सहित एक ही पंक्ति लौटाती हैं। जब एकाधिक मान अपेक्षित हों, तो ये सबक्वेरियाँ सामान्यतः ऐसे तुलना ऑपरेटर्स के साथ उपयोग होती हैं जो डेटा की पंक्ति की तुलना कर सकें, जैसे
=याIN।निम्नलिखित सबक्वेरी किसी प्रबंधक का डिपार्टमेंट और जॉब टाइटल प्राप्त करती है, और बाहरी क्वेरी मेल खाते मानों वाले कर्मचारियों को ढूँढ़ती है।
टेबल सबक्वेरियाँ (डेराइव्ड टेबल्स)
टेबल सबक्वेरियाँ, या डेराइव्ड टेबल्स, कई पंक्तियों और कॉलमों वाली एक पूर्ण टेबल लौटाती हैं। इन्हें आमतौर पर
FROMक्लॉज़ में किसी क्वेरी के भीतर अस्थायी टेबल के रूप में उपयोग किया जाता है।उदाहरण के लिए, नीचे दी गई सबक्वेरी डिपार्टमेंट के अनुसार औसत सैलरी की डेराइव्ड टेबल बनाती है, जिसे फिर बाहरी क्वेरी एक निर्दिष्ट थ्रेशहोल्ड से ऊपर औसत सैलरी वाले डिपार्टमेंट्स को ढूँढ़ने के लिए उपयोग करती है।
SQL सबक्वेरियों को समझना
ऊपर के उदाहरणों से, हमने देखा कि सबक्वेरी को कोष्ठक में बंद किया जाता है। अब हम सबक्वेरी की कार्यप्रणाली, उसके सिंटैक्स और एक्जीक्यूशन क्रम को समझते हैं।
सिंटैक्स और संरचना
सबक्वेरी का सिंटैक्स इस पर निर्भर करता है कि उसे मुख्य SQL स्टेटमेंट में कहाँ उपयोग किया गया है, जैसे
SELECT,FROM, याWHEREक्लॉज़ के भीतर। सबक्वेरियाँ आमतौर पर कोष्ठक( )में घिरी होती हैं, जो एक अलग क्वेरी को दर्शाती हैं।निम्न उदाहरण
WHEREक्लॉज़ के भीतर एक सबक्वेरी को दर्शाता है, जो हमें नेस्टेड क्वेरी के परिणामों के आधार पर मुख्य क्वेरी में डेटा फ़िल्टर करने देता है।एक्जीक्यूशन क्रम
सबक्वेरियों का एक्जीक्यूशन क्रम इस पर निर्भर करता है कि वे कोरिलेटेड हैं या नॉन-कोरिलेटेड।
नॉन-कोरिलेटेड सबक्वेरियाँ
नॉन-कोरिलेटेड सबक्वेरियाँ बाहरी क्वेरी से स्वतंत्र होती हैं और पहले चलती हैं। इसके बाद सबक्वेरी का परिणाम बाहरी क्वेरी को दिया जाता है। नॉन-कोरिलेटेड सबक्वेरियों का उपयोग अक्सर स्केलर या कॉलम-स्तरीय गणनाओं और फ़िल्टर्स के लिए किया जाता है।
नीचे दी गई क्वेरी इस क्रम का पालन करती है:
सबक्वेरी
(SELECT AVG(salary) FROM employees)पहले चलती है और औसत सैलरी निकालती है।फिर बाहरी क्वेरी उन कर्मचारियों को प्राप्त करती है जिनकी सैलरी इस औसत से अधिक है।
ग्रूपिंग, डेटा एग्रीगेशन और टेबल जॉइन के बारे में और जानने के लिए मैं DataCamp का Introduction to SQL Server कोर्स लेने की सलाह देता/देती हूँ।
कोरिलेटेड सबक्वेरियाँ
कोरिलेटेड सबक्वेरियाँ अपने कुछ डेटा के लिए बाहरी क्वेरी पर निर्भर होती हैं, इसलिए वे बाहरी क्वेरी द्वारा प्रोसेस की गई प्रत्येक पंक्ति के लिए पुनः मूल्यांकित की जाती हैं।
निम्न क्वेरी इस क्रम में चलती है:
employeesकी प्रत्येक पंक्ति (जिसेe1उपनाम दिया गया है) के लिए, सबक्वेरी(SELECT AVG(e2.salary) FROM employees e2 WHERE e2.department_id = e1.department_id)उस विशेष डिपार्टमेंट की औसत सैलरी की गणना करती है।फिर बाहरी क्वेरी प्रत्येक कर्मचारी की सैलरी की विभाग की औसत सैलरी से तुलना करती है और केवल उन लोगों को शामिल करती है जो अधिक कमाते हैं।
SQL सबक्वेरी के उपयोग
SQL सबक्वेरियाँ डेटा रिट्रीवल और ट्रांसफॉर्मेशन के लिए महत्वपूर्ण हैं, जिससे आप जटिल क्वेरियाँ लिख सकें और उन्नत डेटा विश्लेषण कार्य संभाल सकें। नीचे डेटाबेस प्रबंधन में सबक्वेरियों के वास्तविक-जीवन के उपयोग दिए गए हैं।
डेटा फ़िल्टर करना
गतिशील शर्तों के आधार पर डेटा फ़िल्टर करते समय सबक्वेरियाँ उपयोगी होती हैं, खासकर जब फ़िल्टरिंग में कई टेबलों के बीच मानों की तुलना या गणनाएँ करनी हों।
निम्नलिखित सबक्वेरी "Product A" का
category_idप्राप्त करती है, और मुख्य क्वेरी उस श्रेणी के सभी उत्पाद ढूँढ़ती है।डेटा एग्रीगेशन
डेटा एग्रीगेशन के लिए भी सबक्वेरियों का उपयोग होता है, खासकर जब रिपोर्टिंग और विश्लेषण के लिए सार सांख्यिकी या इनसाइट्स बनानी हों। सबक्वेरी
(SELECT department_id, AVG(sales) AS avg_sales FROM sales GROUP BY department_id)प्रति डिपार्टमेंट औसत बिक्री की गणना करती है। फिर बाहरी क्वेरी उन डिपार्टमेंट्स को फ़िल्टर करती है जिनकी औसत बिक्री 50,000 से अधिक है।प्रदर्शन संबंधी विचार और सर्वोत्तम प्रथाएँ
हालाँकि जटिल क्वेरियाँ लिखते समय सबक्वेरियाँ शक्तिशाली होती हैं, वे विशेषकर बड़े डेटा सेट्स के साथ काम करते समय प्रदर्शन पर प्रभाव डाल सकती हैं। बेहतर प्रदर्शन के लिए सामान्य चूकों और सर्वोत्तम प्रथाओं पर विचार करना महत्वपूर्ण है।
सबक्वेरी प्रदर्शन का अनुकूलन
सबक्वेरी प्रदर्शन का अनुकूलन क्वेरी एक्जीक्यूशन समय और डेटाबेस की प्रतिक्रिया क्षमता में सुधार सुनिश्चित करता है। सबक्वेरी को अनुकूलित करने के कुछ तरीके निम्नलिखित हैं।
प्रासंगिक कॉलम्स को इंडेक्स करें: डेटा रिट्रीवल को तेज करने के लिए सुनिश्चित करें कि
WHEREऔरJOINक्लॉज़ तथा तुलना ऑपरेशन्स में उपयोग किए गए कॉलम्स इंडेक्स्ड हों।कोरिलेटेड सबक्वेरियों का उपयोग सीमित करें: जहाँ संभव हो, कोरिलेटेड सबक्वेरियों की जगह JOIN ऑपरेशन्स या CTEs का उपयोग करें, क्योंकि वे प्रायः रो-दर-रो के बजाय सेट ऑपरेशन्स से डेटा को तेज़ी से प्रोसेस कर सकती हैं।
सबक्वेरियों में कॉलम्स की संख्या सीमित रखें: केवल आवश्यक कॉलम्स ही चुनें ताकि डेटा रिट्रीवल न्यूनतम हो, मेमोरी उपयोग कम हो, और डेटाबेस एक्जीक्यूशन को बेहतर तरीके से ऑप्टिमाइज़ कर सके।
IN की जगह EXISTS का उपयोग करें: यदि कोई सबक्वेरी बड़ा डेटा सेट लौटाती है, तो
INके बजायEXISTSका उपयोग प्रदर्शन में सुधार ला सकता है।EXISTSऑपरेटर जैसे ही मेल खाती पंक्ति मिलती है, क्वेरी प्रोसेसिंग रोक देता है, जबकिINऑपरेटर पूरी सबक्वेरी का परिणाम मूल्यांकित करता रहता है।आम गलतियों से बचना
जब आप सबक्वेरियाँ गलत तरीके से लिखते हैं, तो उनके एक्जीक्यूशन में समस्याएँ आ सकती हैं। आइए देखें कि इन चूकों से कैसे बचा जाए।
अनावश्यक कोरिलेटेड सबक्वेरियों से बचें: कोरिलेटेड सबक्वेरियाँ संसाधन-गहन होती हैं, इसलिए जब परिणाम नॉन-कोरिलेटेड सबक्वेरी या जॉइन से प्राप्त किया जा सकता हो, तो उनका उपयोग न करें।
सबक्वेरियों में NULL मानों के प्रति सतर्क रहें:
NULLमान अप्रत्याशित परिणाम दे सकते हैं, खासकर उन सबक्वेरियों में जोINया=जैसे तुलना ऑपरेटर्स का उपयोग करती हैं। त्रुटियों से बचने के लिएCOALESCEका उपयोग कर NULLs को संभालें या सुनिश्चित करें कि तुलना में उपयोग होने वाले कॉलम nullable न हों।सबक्वेरियों में SELECT * का उपयोग न करें:
SELECT *अप्रभावी हो सकता है, क्योंकि यह सभी कॉलम्स लाता है, भले ही उनकी आवश्यकता न हो। इससे मेमोरी उपयोग बढ़ता है और विशेष रूप से बड़े डेटा सेट्स पर क्वेरी धीमी हो सकती है।अर्थपूर्ण उपनामों का उपयोग करें: अपनी टेबलों और सबक्वेरियों के स्पष्ट नाम रखें ताकि पठनीयता बेहतर हो।
हमारा SQL Server Developer करियर ट्रैक आज़माएँ, जो आपको SQL Server का उपयोग करके अपनी क्वेरियाँ लिखने, डिबग करने और ऑप्टिमाइज़ करने के कौशल से लैस करेगा।
और भी उन्नत SQL सबक्वेरी तकनीकें
जहाँ सबक्वेरियाँ जटिल क्वेरियाँ लिखने का एक कुशल तरीका देती हैं, वहीं हाइरार्किकल डेटा संभालने के उन्नत तरीके भी मौजूद हैं। आइए SQL सबक्वेरियों को लागू करने की उन्नत तकनीकों और रणनीतियों पर नज़र डालें।
रिकर्सिव सबक्वेरियाँ
रिकर्सिव सबक्वेरियाँ (जिन्हें रिकर्सिव कॉमन टेबल एक्सप्रेशन या CTEs भी कहा जाता है) आपको हाइरार्किकल डेटा प्राप्त करने देती हैं, जैसे संगठनात्मक संरचनाएँ, उत्पाद श्रेणियाँ, या ग्राफ-आधारित रिश्ते—जहाँ डेटा की प्रत्येक इकाई किसी अन्य से जुड़ी होती है।
मान लीजिए आपके पास
employeesनामक टेबल है जिसमेंemployee_id,manager_id, औरemployee_nameहैं। आप किसी विशिष्ट मैनेजर के अधीन कर्मचारियों की हाइरार्की प्राप्त करना चाहते हैं।ऊपर की क्वेरी में:
जिसे मैं एंकर क्वेरी कह रहा/रही हूँ, वह टॉप-लेवल मैनेजर का चयन करती है (जहाँ
manager_idNULLहो)।रिकर्सिव क्वेरी
employeesको उसी CTE (EmployeeHierarchy) से जॉइन करती है, और प्रत्येक पहले से प्राप्त कर्मचारी को रिपोर्ट करने वाले कर्मचारियों को ढूँढ़ती है।रिकर्सन तब तक जारी रहता है जब तक आगे रिपोर्ट करने वाले कर्मचारी न मिलें।
अन्य SQL फ़ीचर्स के साथ सबक्वेरीज़ को संयोजित करना
आप सबक्वेरीज़ को विंडो फ़ंक्शंस,
CASEस्टेटमेंट्स और ग्रुपिंग फ़ंक्शंस जैसे अन्य SQL फ़ीचर्स के साथ एकीकृत कर सकते हैं। ये संयोजन उन्नत डेटा हेरफेर और अधिक व्यापक रिपोर्टिंग को संभव बनाते हैं।विंडो फ़ंक्शंस के साथ सबक्वेरीज़ का संयोजन
सबक्वेरीज़ उस डेटासेट को परिष्कृत करने में मदद करती हैं जिस पर विंडो फ़ंक्शंस कार्य करते हैं, जिससे वे रैंकिंग, संचयी योग और मूविंग एवरेज के लिए उपयोगी होती हैं। मान लें कि आप प्रत्येक क्षेत्र के भीतर बिक्री के आधार पर उत्पादों को रैंक करना चाहते हैं। आप संबंधित डेटा चुनने के लिए एक सबक्वेरी का उपयोग कर सकते हैं और फिर रैंकिंग के लिए विंडो फ़ंक्शन लागू कर सकते हैं।
CASE स्टेटमेंट्स के साथ सबक्वेरीज़ का उपयोग
CASEस्टेटमेंट्स के साथ सबक्वेरीज़ को मिलाने से आप डायनेमिक कैलकुलेशंस के आधार पर जटिल शर्तें लागू कर सकते हैं। नीचे दिया गया क्वेरी उत्पादों को उनकी श्रेणी के औसत बिक्री के सापेक्ष उनकी बिक्री के आधार पर “High”, “Medium” या “Low” परफ़ॉर्मर के रूप में वर्गीकृत करता है।शर्तीय एग्रीगेशन के लिए एग्रीगेट फ़ंक्शंस के साथ सबक्वेरीज़
आप एग्रीगेट फ़ंक्शंस के भीतर सबक्वेरीज़ का उपयोग करके शर्तीय एग्रीगेट भी निकाल सकते हैं। मान लें कि आप केवल सक्रिय ग्राहकों द्वारा उत्पन्न कुल राजस्व की गणना करना चाहते हैं। नीचे दिए गए उदाहरण में, सबक्वेरी सभी सक्रिय ग्राहकों को प्राप्त करती है। मुख्य क्वेरी तब ऑर्डर्स को केवल सक्रिय ग्राहकों द्वारा दिए गए ऑर्डर्स तक सीमित करती है और इस समूह से कुल राजस्व की गणना करती है।
SQL सबक्वेरीज़ कब उपयोग होती हैं
SQL सबक्वेरीज़ डेटा विश्लेषण के लिए बहुमुखी वास्तविक-जीवन अनुप्रयोग प्रदान करती हैं, इसलिए उनका अक्सर उपयोग होता है। नीचे SQL सबक्वेरीज़ के कुछ उद्योग-विशिष्ट या गणितीय अनुप्रयोग दिए गए हैं। इन विचारों तक पहुँचने के लिए, मैंने ऐसे डेटा विश्लेषण या डेटा इंजीनियरिंग कार्यों के बारे में सोचा जिनमें कई चरणों की आवश्यकता होती है—जो मेरी दृष्टि में, वही क्षेत्र है जहाँ सबक्वेरीज़ वाकई मददगार होती हैं।
उद्योग-विशिष्ट उदाहरण
वित्त, स्वास्थ्य सेवा और रिटेल उद्योगों में सबक्वेरीज़ उपयोगी समाधान दे सकती हैं। यहाँ कुछ विचार हैं:
लोन स्वीकृति के लिए जोखिम आकलन (वित्त): मैं बैंकों को ऋण-से-आय अनुपात और क्रेडिट स्कोर जैसे मेट्रिक्स के साथ जूझते हुए देखता हूँ। इन मेट्रिक्स को सबक्वेरीज़ में नेस्ट करके, विश्लेषक जटिल वित्तीय संकेतकों को बेहतर समझ सकते हैं। उदाहरण के लिए, एक सबक्वेरी विशिष्ट आय वर्गों के भीतर ग्राहकों के लिए औसत ऋण राशि की गणना कर सकती है।
मरीज़ निदान में पैटर्न की पहचान (स्वास्थ्य सेवा): स्वास्थ्य सेवा में रोगी डेटा का प्रबंधन एक बड़ा काम हो सकता है। सबक्वेरीज़ इस जटिलता को तोड़ने में मदद कर सकती हैं। मैं अलग-अलग आयु समूहों या जोखिम कारकों में निदान की आवृत्तियों को ट्रैक करने के लिए सबक्वेरीज़ के उपयोग की कल्पना करता हूँ।
खरीद इतिहास के आधार पर उत्पाद प्लेसमेंट का अनुकूलन (रिटेल): रिटेलर खरीदारी पैटर्न को समझने पर फलते-फूलते हैं। सबक्वेरीज़ नेस्टेड खरीद डेटा दिखाकर यह पहचानने में मदद कर सकती हैं कि कौन से उत्पाद अक्सर साथ खरीदे जाते हैं। इससे परस्पर पूरक वस्तुओं को रणनीतिक रूप से रखने और बिक्री बढ़ाने में मदद मिल सकती है।
गणितीय संदर्भ
सबक्वेरीज़ का उपयोग गणितीय और तार्किक कड़ियों में डेटा पैटर्न और रुझान पहचानने के लिए भी किया जाता है। नीचे कुछ परिदृश्य हैं जहाँ गणित में सबक्वेरीज़ लागू होती हैं।
टाइम-सीरीज़ विश्लेषण के लिए मूविंग एवरेज: समय के साथ रुझानों का विश्लेषण करते समय, सबक्वेरीज़ मूविंग एवरेज की गणना को सरल बना देती हैं। मैं उन्हें नेस्टेड क्वेरीज़ के भीतर विशिष्ट समय विंडो परिभाषित करते हुए देखता हूँ, जिससे डेटा को स्मूद करना और रुझान पहचानना आसान हो जाता है।
स्टैंडर्ड डिविएशन का उपयोग करके आउटलायर की पहचान: आउटलायर ढूँढना कई कामों के लिए महत्वपूर्ण है, जिनमें धोखाधड़ी का पता लगाना भी शामिल है। सबक्वेरीज़ नेस्टेड क्वेरीज़ के भीतर स्टैंडर्ड डिविएशन जैसे व्युत्पन्न मेट्रिक्स की गणना को सीधा बना देती हैं।
सेट थ्योरी की अवधारणाओं का उपयोग: मुझे यह दिलचस्प लगता है कि सबक्वेरीज़
UNIONऔरINTERSECTजैसी सेट थ्योरी ऑपरेशंस को प्रतिबिंबित करती हैं। यह क्षमता कस्टमर रिटेंशन विश्लेषण जैसे कार्यों के लिए उपयुक्त है, जहाँ ग्राहक समूहों के बीच ओवरलैप्स और भिन्नताओं को समझना अधिक बुद्धिमान मार्केटिंग रणनीतियों को आगे बढ़ा सकता है।निष्कर्ष
SQL सबक्वेरीज़ में महारत हासिल करना डेटा को कुशलतापूर्वक प्रबंधित और विश्लेषित करने की आपकी क्षमता को महत्वपूर्ण रूप से बढ़ा सकता है। उनकी संरचना, उपयोग और सर्वोत्तम तरीकों को समझकर, आप बेहतर प्रदर्शन के लिए अपनी SQL क्वेरीज़ को अनुकूलित कर सकते हैं। साथ ही, मैं कहना चाहूँगा कि सबक्वेरीज़ में दक्षता हासिल करने से SQL लिखना सरल हो जाता है, इसलिए इसे सीखना लाभकारी है।
यदि आप एक दक्ष डेटा विश्लेषक बनना चाहते हैं, तो आवश्यक कौशल सीखने के लिए हमारा Associate Data Analyst in SQL करियर ट्रैक देखें। यदि आप SQL का उपयोग करके प्रोफेशनल डैशबोर्ड बनाना सीखना चाहते हैं, तो Reporting in SQL कोर्स भी उपयुक्त है। अंत में, मैं SQL Associate Certification प्राप्त करने की सलाह देता हूँ ताकि आप डेटा विश्लेषण के लिए SQL के उपयोग में अपनी निपुणता प्रदर्शित कर सकें और अन्य डेटा प्रोफेशनल्स के बीच अलग दिखाई दें।