बिल्कुल, यहाँ आपके लिए वीडियो का व्यापक सारांश हिंदी में प्रस्तुत है।
शीर्षक
SQL इंटरव्यू प्रश्न: डेटा रिट्रीवल, जॉइन, विंडो फंक्शन और बहुत कुछ
विवरण
यह वीडियो SQL इंटरव्यू के लिए जरूरी सभी महत्वपूर्ण प्रश्नों और क्वेरीज़ को कवर करता है। इसमें बेसिक से लेकर एडवांस SQL कॉन्सेप्ट्स जैसे सेल्फ जॉइन, विंडो फंक्शन, और डुप्लीकेट रिकॉर्ड्स हैंडल करने तक के लिए प्रैक्टिकल SQL हैक्स शामिल हैं। यह वीडियो खासतौर पर उन छात्रों और प्रोफेशनल्स के लिए है जो SQL से जुड़े डेटा एनालिसिस या सॉफ्टवेयर डेवलपमेंट इंटरव्यू की तैयारी कर रहे हैं।
कीवर्ड्स
SQL इंटरव्यू प्रश्न, SQL क्वेरी ट्यूटोरियल, SQL जॉइन्स, SQL विंडो फंक्शन, SQL डेटा रिट्रीवल, SQL ग्रुप बाय, SQL हैविंग क्लॉज, डुप्लीकेट रिमूवल SQL
सामग्री सारांश
परिचय: SQL क्यों जरूरी है?
- "डेटा नया तेल है और AI नई रिफाइनरी" - इस कोट से शुरुआत करते हुए, वीडियो SQL (डेटा मैनिपुलेशन की भाषा) के महत्व पर जोर देता है।
- यह वीडियो SQL क्वेरीज़, DDL, DML, DCL, और TCL जैसे मूलभूत विषयों से लेकर एडवांस कॉन्सेप्ट्स तक, हर जरूरी इंटरव्यू टॉपिक को कवर करता है। एक बेहतरीन शुरुआत के लिए, आप MySQL Tutorial: डेटाबेस मैनेजमेंट से लेकर SQL कमांड्स तक पढ़ सकते हैं।
मुख्य SQL प्रश्न और उनके समाधान
1. बेसिक डेटा रिट्रीवल और सॉर्टिंग
- प्रश्न: इंजीनियरिंग डिपार्टमेंट के सभी कर्मचारियों को उच्चतम से निम्नतम वेतन के क्रम में दिखाएं।
- समाधान:
SELECT * FROM Employee WHERE Department = 'Engineering' ORDER BY Salary DESC; - मुख्य बिंदु:
WHEREकंडीशन लगाई गई, औरORDER BYके साथDESC(डिसेंडिंग) का उपयोग किया गया।
2. ग्रुपिंग और एग्रीगेट फंक्शन
- प्रश्न: प्रत्येक विभाग में कर्मचारियों की संख्या ज्ञात करें।
- समाधान:
SELECT Department, COUNT(*) AS Employee_Count FROM Employee GROUP BY Department; - एक्स्ट्रा पॉइंट: अगर 2 से अधिक कर्मचारियों वाले विभाग ही चाहिए, तो
HAVINGक्लॉज का उपयोग करें:... GROUP BY Department HAVING COUNT(*) > 2;
3. सेकंड हाईएस्ट सैलरी
- प्रश्न: टेबल से दूसरी सबसे अधिक अलग (डिस्टिंक्ट) सैलरी ज्ञात करें।
- समाधान:
SELECT MAX(Salary) AS Second_Highest_Salary FROM Employee WHERE Salary < (SELECT MAX(Salary) FROM Employee); - लॉजिक: पहले MAX सैलरी निकालें, फिर उससे कम सैलरी वालों में से MAX सैलरी निकालें।
4. एवरेज सैलरी से अधिक कमाने वाले
- प्रश्न: कंपनी की औसत सैलरी से अधिक कमाने वाले कर्मचारियों को ढूंढें।
- समाधान:
SELECT * FROM Employee WHERE Salary > (SELECT AVG(Salary) FROM Employee); - तरीका: यहाँ सबक्वेरी (इनर क्वेरी) का उपयोग करके पहले AVG सैलरी निकाली गई, फिर आउटर क्वेरी में तुलना की गई।
5. प्रति विभाग अधिकतम वेतन
- प्रश्न: प्रत्येक विभाग में सबसे अधिक वेतन ज्ञात करें।
- समाधान:
SELECT Department, MAX(Salary) FROM Employee GROUP BY Department; - महत्वपूर्ण:
GROUP BYके साथSELECTमें केवल वही कॉलम शामिल हो सकते हैं जोGROUP BYमें हैं या फिर एग्रीगेट फंक्शन के साथ उपयोग किए गए हैं।
6. सेल्फ जॉइन (Self Join)
- प्रश्न: उन कर्मचारियों को ढूंढें जिनका वेतन उनके मैनेजर के वेतन से अधिक है।
- समाधान:
SELECT E.Employee_Name, E.Salary FROM Employee E JOIN Employee M ON E.Manager_ID = M.Employee_ID WHERE E.Salary > M.Salary; - कॉन्सेप्ट: एक ही टेबल को दो अलग-अलग एलियास (E और M) देकर सेल्फ जॉइन किया गया।
7. लेफ्ट जॉइन और NULL वैल्यू
- प्रश्न: उन ग्राहकों को ढूंढें जिन्होंने कभी ऑर्डर नहीं दिया।
- समाधान:
SELECT C.Customer_Name FROM Customer C LEFT JOIN Orders O ON C.Customer_ID = O.Customer_ID WHERE O.Order_ID IS NULL; - लॉजिक:
LEFT JOINकरने पर जिन ग्राहकों का ऑर्डर नहीं है, उनके लिएOrder_IDNULLहोगा, जिसेWHEREक्लॉज में फ़िल्टर किया गया।
8. HAVING क्लॉज का उपयोग
- प्रश्न: उन ग्राहकों को ढूंढें जिन्होंने एक से अधिक ऑर्डर दिए हैं।
- समाधान:
SELECT C.Customer_ID, C.Customer_Name, COUNT(O.Order_ID) AS Order_Count FROM Customer C JOIN Orders O ON C.Customer_ID = O.Customer_ID GROUP BY C.Customer_ID, C.Customer_Name HAVING COUNT(O.Order_ID) > 1; - नोट:
GROUP BYमेंCustomer_Nameको शामिल करना जरूरी है ताकि उसेSELECTमें दिखाया जा सके।
9. टॉप स्पेंडर खोजना
- प्रश्न: डिलीवर किए गए ऑर्डर के आधार पर सबसे अधिक खर्च करने वाले ग्राहक का पता लगाएं।
- समाधान:
SELECT C.Customer_Name, SUM(O.Amount) AS Total_Spent FROM Customer C JOIN Orders O ON C.Customer_ID = O.Customer_ID WHERE O.Status = 'Delivered' GROUP BY C.Customer_ID, C.Customer_Name ORDER BY Total_Spent DESC LIMIT 1; - ट्रिक:
ORDER BYऔरLIMIT 1का उपयोग करके केवल शीर्ष परिणाम प्राप्त किया गया।
10. ट्रंकेट बनाम डिलीट
- प्रश्न: एक टेबल से सारे रिकॉर्ड्स को जल्दी से हटाना है, लेकिन टेबल का स्ट्रक्चर बरकरार रखना है। कौन सी कमांड Use करेंगे?
- उत्तर:
TRUNCATE TABLE Table_Name; - अंतर:
TRUNCATEDDL कमांड है और सारा डेटा एक साथ डिलीट करता है (रिकवर नहीं किया जा सकता)। जबकिDELETEDML कमांड है जो रो-बाय-रो डिलीट करता है और इसे रिकवर किया जा सकता है, लेकिन यह धीमा है।
11. डीसीएल (DCL) कमांड्स
- प्रश्न: एक नए इंटर्न को केवल Employee टेबल देखने (SELECT) की अनुमति देना है, मॉडिफाई करने की नहीं।
- समाधान:
GRANT SELECT ON Employee TO Intern_User; - रिवोक: अनुमति वापस लेने के लिए
REVOKE SELECT ON Employee FROM Intern_User;का उपयोग करें।
12. SQL एग्जीक्यूशन ऑर्डर
- प्रश्न: समझाएं कि
SELECTमें बनाया गया AliasWHEREक्लॉज में काम क्यों नहीं करता? - उत्तर: SQL क्वेरी का एग्जीक्यूशन ऑर्डर इस प्रकार है:
FROM->JOIN->WHERE->GROUP BY->HAVING->SELECT->ORDER BY->LIMIT. चूंकिSELECTक्लॉज,WHEREके बाद एक्सीक्यूट होता है, इसलिएWHEREमें Alias को Refer नहीं किया जा सकता।
13. रैंक और डेंस रैंक
- प्रश्न:
ROW_NUMBER(),RANK(), औरDENSE_RANK()में क्या अंतर है? - उत्तर:
ROW_NUMBER(): डुप्लीकेट वैल्यू होने पर भी अलग-अलग नंबर (1, 2, 3, 4) देता है।RANK(): डुप्लीकेट को समान रैंक देता है (जैसे 1, 2, 2, 4) और अगली रैंक को स्किप करता है।DENSE_RANK(): डुप्लीकेट को समान रैंक देता है (जैसे 1, 2, 2, 3) लेकिन रैंक को स्किप नहीं करता।
14. NULL हैंडलिंग और COUNT
- प्रश्न: एक टेबल में डुप्लीकेट और NULL वैल्यूज़ हैं।
COUNT(*),COUNT(Email), औरCOUNT(DISTINCT Email)के परिणामों में क्या अंतर होगा? - उत्तर:
COUNT(*): सभी रो को काउंट करता है, जिसमें NULL वैल्यू वाली रो भी शामिल है।COUNT(Email): NULL वैल्यू को इग्नोर करता है।COUNT(DISTINCT Email): केवल यूनिक नॉन-NULL वैल्यू को काउंट करता है।
15. COALESCE फंक्शन
- प्रश्न: एक रिपोर्ट में प्राइमरी, अल्टरनेट और इमरजेंसी फोन नंबर होने पर, पहला नॉन-NULL नंबर दिखाना है। यदि सभी NULL हों तो "Not Available" दिखाएं।
- समाधान:
SELECT COALESCE(Primary_Phone, Alternate_Phone, Emergency_Phone, 'Not Available') AS Contact_Number FROM Customer; - कार्य:
COALESCEलिस्ट में दिए गए पहले नॉन-NULL वैल्यू को रिटर्न करता है।
16. विंडो फंक्शन (LAG)
- प्रश्न: प्रत्येक यूज़र का पिछली (प्रीवियस) लॉगिन डेट दिखाएं।
- समाधान:
SELECT User_ID, Login_Date, LAG(Login_Date) OVER (PARTITION BY User_ID ORDER BY Login_Date) AS Previous_Login FROM Logins; - एक्सप्लेनेशन:
LAGफंक्शन पिछली रो की वैल्यू प्राप्त करता है।PARTITION BYप्रत्येक यूज़र के लिए अलग ग्रुप बनाता है, औरORDER BYयह तय करता है कि किस रो को पिछली माना जाए।
17. CASE STATEMENT (सशर्त टैगिंग)
- प्रश्न: कर्मचारियों को उनके वेतन के आधार पर Low, Medium, High में क्लासिफाई करें।
- समाधान:
SELECT Employee_ID, Salary, CASE WHEN Salary > 80000 THEN 'High' WHEN Salary > 50000 THEN 'Medium' ELSE 'Low' END AS Salary_Band FROM Employee; - विभिन्न डेटाबेस: Oracle में
DECODE, MySQL मेंIF, SQL Server मेंIIFका उपयोग हो सकता है।
18. NULLIF और ZERO डिवीज़न
- प्रश्न: एक परसेंटेज कैलकुलेशन में, अगर Target Zero है तो "Division by zero" एरर से कैसे बचें?
- समाधान:
SELECT Achieved / NULLIF(Target, 0) AS Percentage FROM Sales; - लॉजिक:
NULLIF(Target, 0)यदि Target 0 है तो उसे NULL में कन्वर्ट कर देता है, और किसी भी संख्या को NULL से डिवाइड करने पर एरर नहीं बल्कि परिणाम NULL आता है।
19. डुप्लीकेट रिकॉर्ड्स डिलीट करना
- प्रश्न: प्रत्येक ईमेल के लिए सबसे नया (लेटेस्ट) रिकॉर्ड रखते हुए डुप्लीकेट रिकॉर्ड्स को डिलीट करें।
- समाधान (CTE का उपयोग करके):
WITH Ranked_Customers AS ( SELECT Customer_ID, ROW_NUMBER() OVER (PARTITION BY Email ORDER BY Created_At DESC) AS rn FROM Customers ) DELETE FROM Customers WHERE Customer_ID IN ( SELECT Customer_ID FROM Ranked_Customers WHERE rn > 1 ); - प्रक्रिया: यहाँ
ROW_NUMBER()का उपयोग करके प्रत्येक ईमेल समूह में नवीनतम रिकॉर्ड को रैंक 1 दिया गया, और फिर 1 से अधिक रैंक वाले (डुप्लीकेट) रिकॉर्ड को डिलीट कर दिया गया।
अतिरिक्त टिप्स
- अभ्यास: वीडियो में ऑनलाइन SQL प्लेटफ़ॉर्म (जैसे Oracle Live SQL) का उपयोग करके क्वेरीज़ को रन करने की सलाह दी गई है। शुरुआत करने के लिए, Python Basics: Complete Guide to Programming Concepts and Examples जैसे बुनियादी प्रोग्रामिंग संसाधनों का भी उपयोग किया जा सकता है।
- लिंक: वीडियो में बेसिक SQL कमांड्स (DDL, DML, DCL) और विंडो फंक्शन पर विस्तृत वीडियो के लिंक दिए गए हैं। डेटा एनालिसिस में गहरी रुचि रखने वाले प्रोफेशनल्स के लिए Power BI मास्टर क्लास: डेटा एनालिसिस से लेकर इंटरैक्टिव डैशबोर्ड तक भी एक बेहतरीन संसाधन हो सकता है।
यह वीडियो SQL इंटरव्यू की तैयारी के लिए एक परफेक्ट गाइड है। इसमें दिए गए हर प्रश्न को समझकर और प्रैक्टिस करके आप किसी भी SQL इंटरव्यू को क्रैक कर सकते हैं।
वीडियो को लाइक, शेयर और सब्सक्राइब जरूर करें!
इसके अलावा, अगर आप AI युग में अपने करियर को आगे बढ़ाने की सोच रहे हैं, तो 2026 में डेव्स के लिए AI युग की सबसे ज़रूरी स्किल्स और करियर रोडमैप ज़रूर पढ़ें। इसके साथ ही, ट्रांसफॉर्मर और इलेक्ट्रिकल इंजीनियरिंग के विद्यार्थियों के लिए ईएमआई यूनिट 4: करंट और पोटेंशियल ट्रांसफॉर्मर का संपूर्ण परिचय भी मददगार हो सकता है।
डिअ स्टूडेंट्स वेलकम टू गेट स्मेशर्स। एक बहुत ही फेमस कोट है। डाटा इज द न्यू ऑयल एंड एआई इज़ द न्यू रिफाइनरी। मतलब अगर आज
के टाइम पे किसी भी इंडस्ट्री को आगे बढ़ना है तो उसको ऑब्वियसली डेटा को तो इंपॉर्टेंट है ही। अगर हम एआई को चलाना
चाहते हैं। एआई अगर मेरी रिफाइनरी है तो उसको चलाने के लिए मेरे को जो फ्यूल चाहिए वो क्या है? डेटा है। और किसी भी
इंडस्ट्री में सबसे इंपॉर्टेंट चीज क्या होती है? डेटा। और इसी डेटा को अगर मुझे मैनपुलेट करना है, मतलब मुझे कुछ अपडेट
करना है, डिलीशन करना है, इंसर्शन करना है, कुछ भी ऑपरेशन परफॉर्म करना है तो मुझे क्या चाहिए? एक लैंग्वेज चाहिए। और
स्ट्रक्चर डेटा के केस में, रिलेशनल डेटा के केस में हमारे पास लैंग्वेज कौन सी है? एस क्यूएल। और जब भी आप किसी भी इंटरव्यू
में जा रहे हो, चाहे वो सॉफ्टवेयर से रिलेटेड है, सिस्टम डिज़ाइन से रिलेटेड है, चाहे वो नेटवर्किंग से, ऑपरेटिंग सिस्टम
से और सबसे इंपॉर्टेंट अगर डेटा से रिलेटेड है, मतलब डेटा एनालिटिक्स हो गया, बिज़नेस एनालिटिक्स हो गया। जहां पे भी
डेटा की बात की जाएगी वहां पे सीक्वल की बात ना हो ऐसा हो ही नहीं सकता। तो इसीलिए आज की इस वीडियो में मैं आपको जितने भी
पॉसिबल क्वेश्चंस हैं इंटरव्यू के वो सारे के सारे एक्सप्लेन करने जा रहा हूं। और विद क्वेरीज मतलब इंपॉर्टेंट क्वेरीज भी
एक्सप्लेन करने जा रहा हूं। ऑलदो सीक्वल की कहानी स्टार्ट किससे होती है? जैसे हर एक कहानी एक स्टोरी का स्टार्ट होता है ना
कि एक बार एक राजा था, एक बार की बात है, एक राजा था। ऐसे ही हमारी जो स्टोरी है सीक्वल की वो स्टार्ट होती है किससे?
डीडीएल, डीएमएल, डीसीएल और इसके अलावा ट्रांजैक्शनल क्वेरी लैंग्वेज टी क्यूएल। तो यहां पे अगर बात की जाए तो मैं वो
क्वेरीज आपको यहां पे नहीं बता रहा क्योंकि वो चीज आपको पता होगा। बेसिक तो आपको पता ही है भैया क्रिएट टेबल अपडेट
करना है। टेबल को डिलीट करना है टेबल में से कुछ। ठीक है? ड्रॉप करना है टेबल को। ट्रंकेट करना है, सेलेक्ट करना है, डेटा
ग्रांट करना है, रिवोक करना है। ये सारी चीजें कहीं ना कहीं एक बेसिक कमांड्स आ जाती है। लेकिन मैं स्टार्ट कर रहा हूं
डायरेक्टली विद द क्वेरीज। तो यहां पे याद रखना जब भी क्वेरीज के ऊपर क्वेश्चन आएगा हमेशा स्टार्ट किया जाएगा आपको एक टेबल से
कि भैया एक टेबल दिया हुआ है और उस टेबल के ऊपर आपको कुछ क्वेरीज लगानी है। डेटा निकालना है। तो इस इस टाइप के क्वेश्चन
आपके सबसे ज्यादा इंपॉर्टेंट होते हैं। और अगर आपने ये कर लिए तो इसके बाद तो कुछ है ही नहीं। ऑलदो मैं बोल रहा हूं कि बेसिक
जो है डीडीएल, डीएमएल, डीसीएल ये सारी कमांड्स भी करनी है। इसका लिंक मैं ऊपर आई सेक्शन में डाल देता हूं। आप एक बेसिक
ओवरव्यू कर लेना। ऑलदो मैं ऐसा करूंगा लास्ट में इसके बारे में थोड़ा सा बता दूंगा। बट स्टार्ट करते हैं आपका क्वेरी
से। ठीक है? अब सबसे पहले मैं क्या लेके आया हूं? मेरे पास एक सिंगल टेबल है। इस सिंगल टेबल के ऊपर कौन-कौन सी क्वेरीज
पॉसिबल हो सकती हैं। फिर हम दो टेबल्स को जॉइन करने वाली क्वेरीज करेंगे। फिर हम सीक्वल के जो एग्रीगेट फंक्शनंस है, डेट
फंक्शनंस हैं उनके ऊपर बात करेंगे। तो एक-एक करके सारे टॉपिक कवर करवाऊंगा। कोई मर्जी इंटरव्यू आ जाए। मजाल है कि आप पीछे
रह जाओ। इंटरव्यूअर खड़े हो के क्लैपिंग करेगा कि यार इस बंदे के पास खतरनाक नॉलेज है। अब यहां पे स्टार्ट कर रहा हूं जी
क्वेश्चन नंबर वन से। ध्यान से सुनना। राइट अ क्वेरी टू डिस्प्ले ऑल द इंजीनियरिंग एंप्लई ऑर्डर्ड बाय सैलरी
फ्रॉम द हाईएस्ट टू द लोएस्ट। मेरे पास एक एंप्लई टेबल है। पहले स्कीमा को समझना जरूरी है। टेबल को समझना जरूरी है। टेबल
में मेरे पास इस तरीके से 1 2 3 4 5 कितने यहां पे कॉलम्स हैं। कॉलम्स को हम एट्रिब्यूट्स भी बोलते हैं पांच। और टपल्स
कितनी है? 1 2 3 4 5 6 छह टपल्स हैं मेरे पास। तो देखा जाए तो यहां पे छह टपल्स हो गई कार्डिनलिटी। और जो डिग्री है इस टेबल
की या एरिटी बोलते हैं वो कितनी होगी? पांच होगी। मेरे को क्या बोल रहा है? उन सारे बंदों का डेटा जो है वो डिस्प्ले
करवाओ। ऑल वो इंजीनियरिंग एंप्लई होने चाहिए। और उनकी जो सैलरी है वो हाईएस्ट से लोएस्ट में आपको डिस्प्ले करनी है। तो
देखो जब भी क्वेरी लिखनी है ना आप पहले ना सेलेक्ट के ऊपर मत जाया करो। हम लोग हमेशा ना स्टार्ट करते हैं कि सेलेक्ट क्या करना
है? मतलब क्या डिस्प्ले करना है? यार ये बाद में जाएंगे। हमेशा सीक्वल की क्वेरी हमेशा एग्जीक्यूट कहां से होती है?
स्टार्ट होती है वो फ्रॉम से। सबसे पहला कीवर्ड एग्जीक्यूट होता है फ्रॉम। फ्रॉम एंप्लई मतलब पहले हम इस टेबल की बात कर
रहे हैं। अच्छा ये टेबल है जी। इस टेबल को बुलाओ पहले तो सभा के अंदर इस टेबल को बुलाओ। इससे हम पूछेंगे क्या पूछेंगे?
दूसरा कीवर्ड जो एग्जीक्यूट होगा वो होगा वेयर क्लॉज़। क्यों? क्योंकि यहां पे हमने एक कंडीशन लगा दी कि मेरे को सारी सैलरीज
को शो नहीं करना। अगर सारी सैलरीज को मुझे हाईएस्ट से लो शो करना हुआ तो मुझे वेयर लगाने की जरूरत नहीं। मैं डायरेक्ट ऑर्डर
वाइज से कर लूंगा। लेकिन इस बंदे ने थोड़ी सी कंडीशन दे दी कि इंजीनियरिंग डिपार्टमेंट होना चाहिए। तो कोई बात नहीं।
वेयर डिपार्टमेंट इज़ इक्वल टू इंजीनियरिंग। तो भैया इन सारे में से सिर्फ इंजीनियरिंग वाला ये क्या कर लेगा?
सेलेक्ट कर लेगा। बाकियों को एक तरह से रिजेक्ट कर देगा। ये नहीं लगाता लाइन तो फिर सों के ऊपर ये क्वेरी रन होगी। उसके
बाद नेक्स्ट हमने क्या कर दिया? जी ऑर्डर बाय। ऑर्डर बाय क्या कर दिया? सैलरी डिसेंडिंग। लेकिन उससे पहले याद रखना कि
यहां पे ऑर्डर बाय सैलरी डिसेंडिंग और असेंडिंग दो चीजें होती है हमारे पास। या तो इंक्रीजिंग ऑर्डर में या फिर
डिक्रीजिंग ऑर्डर में। तो इसने बोला हाईएस्ट टू लोएस्ट। तो मतलब ऑब्वियसली आपको डिक्रीजिंग ऑर्डर में या फिर जिसको
हम बोलते हैं डिसेंडिंग ऑर्डर। बाय डिफॉल्ट ये असेंडिंग ऑर्डर में कर देता है। अगर आप कुछ भी मेंशन नहीं करते। सिर्फ
लिख दोगे ऑर्डर बाय सैलरी तो ये असेंडिंग ऑर्डर में कर देगा लेकिन इसने डिसेंडिंग कहा है तो हम डी ई एस लिख देंगे वैसे ही
असेंडिंग के लिए एएससी लिखते हैं तो भैया इसने क्या करना है सिर्फ इंजीनियरिंग वालों को सेलेक्ट कर लेना है और उसमें जो
सैलरीज हैं एक दो और इसके बाद तीन तो इसको क्या करेगा हाईएस्ट टू लोएस्ट करेगा तो 95 वाली पहले फिर 90 वाली और फिर 72 वाली और
उसके कॉरेस्पोंडिंग मेरे को दिखाना क्या है जो भी मुझे दिखाना चाहता हूं सारा कुछ दिखाना है तो स्टार लगा दो अगर आपको सिर्फ
एम्प्लई का नेम या सैलरी दिखानी है तो आप दो चीजों को यहां पे दिखा सकते हो। बस ये पॉइंट जो है वो याद रखना। इसके अलावा
इसमें कुछ नहीं है। बाकी की कहानी वैसे मैंने आपको समझा ही दी है। ठीक है? एक्स्ट्रा पॉइंट भी मैं बताता रहूंगा।
नेक्स्ट राइट अ क्वेरी टू फाइंड द नंबर ऑफ़ एंप्लाइजज़। अच्छा इसका इन केस आपको स्नैपशॉट लेना है तो आप इसको स्नैपशॉट ले
सकते हो रोक के। ठीक है? नेक्स्ट। राइट अ क्वेरी टू फाइंड द नंबर ऑफ़ एंप्लाइजज़ इन ईच डिपार्टमेंट। वेरीेंट। बहुत इंपॉर्टेंट
है गाइस। मैं सिर्फ क्वेरीज़ नहीं करवा रहा। जितने भी इंपॉर्टेंट कीवर्ड्स हैं वो बता रहा हूं। पिछली में हमारा ऑर्डर बाय
हो गया। वेयर कैसे यूज़ करते हैं? हो गया। यहां पे इंपॉर्टेंट आ गया जी आपका ग्रुप बाय। अब मुझे ग्रुप बनाने हैं। जैसे क्लास
में ग्रुप्स होते हैं ना ऐसे ही हमारे पास जैसे कॉलेज में सीएससी अलग है, आईटी अलग है, ईसी अलग है, मैकेनिकल अलग है। ऐसे ही
हमारे पास एंप्लई टेबल में भी तो डिपार्टमेंट अलग-अलग है। इंजीनियरिंग वाले अलग बंदे हैं। जी। सेल्स वाले अलग बंदे
हैं। आईटी वाले अलग होंगे। मतलब एचआर वाले अलग होंगे। तो मैंने सिर्फ छोटा सा टेबल लिया है बट सेम क्वेरी चाहे आप 1 लाख 10
लाख रो पे चला दो आंसर आपको सेम ही देगी। तो स्टार्ट करते हैं फ्रॉम एंप्लई हमेशा स्टार्ट करना है फ्रॉम एंप्लई से। मेरे को
सबसे पहले किस टेबल में से? उसके बाद हम लगाएंगे जी ग्रुप बाय। मेरे को ऑब्वियसली क्या करना है? फाइंड द नंबर ऑफ एंप्लाइजज़
इन ईच डिपार्टमेंट। तो पहले तो डिपार्टमेंट वाइज़ ग्रुप बना दो। तो डिपार्टमेंट वाइज़ ग्रुप बनाने के लिए
ग्रुप बाय डिपार्टमेंट कर दिया। तो ये क्या करेगा? इंटरनली बता रहा हूं। अंदर की कहानी बता रहा हूं। अंदर की कहानी क्या
होगी? इंजीनियरिंग इंजीनियरिंग इंजीनियरिंग अलग हो गया। सेल सेल सेल अलग हो गया। आई थिंक तीन है सेल के। हां सेल
सेल सेल अलग हो गया। इंजीनियरिंग इंजीनियर अलग हो गया। इस इस तरीके से मान के चलो ऐसे आउटपुट आएगी। उसके बाद क्या होगा?
सेलेक्ट डिपार्टमेंट कॉमा काउंट स्टार एज एंप्लॉय। तो मैंने क्या किया? डिपार्टमेंट तो ऑब्वियसली शो करेगा ही कि भैया इस
तरीके से आउटपुट आएगी। एक इंजीनियरिंग और एक सेल्स। और उसके अलावा मैंने क्या लगा दिया? काउंट स्टार। दिस इज़ अ एग्रीगेट
फंक्शन। एग्रीगेट फंक्शन में हमने काउंट स्टार लगाया। ये काउंट कर लेगा। भैया इस ग्रुप में कितने बंदे हैं? तीन बंदे हैं।
इस ग्रुप में कितने बंदे हैं? तीन बंदे हैं। यही तो शो करना है। इसको आउटपुट में शो कर देगा। अब यहां पे छोटा सा डाउट आपके
दिमाग में आ सकता है कि सर ये क्या लिख दिया आपने? काउंट स्टार के साथ एज एंप्लई अंडरस्कोर काउंट ये क्या है कि अगर यहां
पे आप कुछ नहीं शो करते ना तो ये काउंट स्टार करके दिखा देगा। अगर आपने इसका एल एलआई क्रिएट करना है। एक डमी नाम क्रिएट
करना है इस कॉलम का तो क्योंकि इस कॉलम का नाम तो डिपार्टमेंट है ही। इस कॉलम का नाम अगर आप देना चाहते हो तो आप अपने हिसाब से
कुछ ए बी सी एम्प्लई अंडरस्कोर जो भी देना चाहते हो तो एक एलआई क्रिएट कर देता है। टेंपरेरी नेम इसको दे देगा। अच्छा इसी में
अगर आपको बोल दें कि उन सारे एंप्लाइज या उन सारे डिपार्टमेंट्स का नेम बताओ जिसके अंदर दो से ज्यादा एंप्लई हैं। दो से
ज्यादा। अब देखो यहां पे आपने काउंट तो कर लिया इसमें तीन लोग हैं। इसमें तीन लोग हैं। अगर आपने ये निकालना है कि जिस वो
सारे बंदे जिसमें दो से ज्यादा बंदे हों तो आप ग्रुप बाय के नीचे ही एक क्लॉज़ लगा देते हो। हैविंग हैविंग क्या करता है
हमेशा ग्रुप बाय के अंदर चलता है और ग्रुप बाय के अंदर अगर मुझे कुछ कंडीशन लगानी है वेयर क्लॉज़ तो पूरे टेबल पे लगाता है
लेकिन हैविंग जो है वो कंडीशन लगाएगा लेकिन लगाएगा ग्रुप बाय के अंदर अकेला यूज़ नहीं होगा ग्रुप बाय के अंदर तो मैंने
क्या किया हैविंग काउंट स्टार वही काउंट स्टार तो मैंने कर ही लिया हैविंग काउंट स्टार ग्रेटर देन टू तो ये क्या करेगा
पहले तो ग्रुप बना देगा बना दिए उसके बाद काउंट कर लिए तीन-तीन काउंट है अब देखेगा कि अच्छा जहांजहां पे काउंट स्टार आर
ग्रेटर दैन टू है वो दिखा दो। तो ऑब्वियसली इस केस में भी आंसर तो खैर ये दोनों ही आ जाएंगे क्योंकि दोनों में ही
दो से ज्यादा एम्प्लई है। बट आपको पता लग गया हैविंग को भी कैसे यूज़ करते हैं इनसाइड दैट। एलआई भी पता लग गया।
एक्स्ट्रा चीजें मैं आपको सारी बताता जा रहा हूं। प्लीज नोट कर लेना यार। ऐसे हवा में मत चलाना। हवा में करोगे तो आपको समझ
नहीं आएगा। इवन आप ओरेकल वगैरह पे ऑनलाइन अकाउंट बना के आप उस पे इजीली क्वेरीज को रन भी कर सकते हो। टेबल को क्रिएट करो।
क्वेरीज को रन करो, प्रैक्टिस करो। अगर आप नहीं डाउनलोड करना चाहते सीक्वल सर्वर या ओरेकल का कोई सॉफ्टवेयर या माय सीक्वल
करोगे तो वैसे अच्छी बात है इंजीनियरिंग स्टूडेंट के पास तो होने चाहिए सारी चीजें लेकिन अगर फिर भी आप कहते हो शॉर्टकट में
तो भैया ओरेकल लाइव पे या ऑनलाइन सीक्वल सर्वर आप इन चीजों पे जाओगे ना Google पे लिखो जी आपका जो है वो ऑनलाइन आ जाएगा
उसमें सिर्फ आपको साइन अप करना है और ये सारा काम कर भी सकते हो देन राइट अ क्वेरी टू फाइंड द सेकंड हाईएस्ट डिस्टिंक्ट
सैलरी बड़ेेंट है यार ये जो सेकंड हाईएस्ट थर्ड हाईएस्ट एनथ हाईएस्ट ये तो आते ही आते हैं। कुछ नहीं है। बड़ा सिंपल सा लॉजिक
है। आपको अगर मैं बोल दूं कि सेलेक्ट मैक्स सैलरी फ्रॉम एंप्लई। सिर्फ इस पे फोकस करो। सेलेक्ट मैक्स सैलरी फ्रॉम
एंप्लई। ये क्या देगा? पूरे टेबल में से सबसे ज्यादा मैक्सिमम सैलरी। तो क्या है? जी पूरे टेबल में कौन है भाई? जो सबसे
ज्यादा कमा रहा है? आई थिंक यही कमा रहा है भाई। ये वाला इंजीनियरिंग वाला। आरएफ सबसे ज्यादा कमा रहा है। तो इसका आउटपुट
पता है क्या आएगा? इसका आउटपुट आएगा 95,000। सिर्फ अंदर वाली क्वेरी का सिर्फ इनर क्वेरी का आउटपुट बता रहा हूं। ठीक
है? अब मैंने एक लॉजिक लगाया कि वो सारी सैलरी मेरे को निकाल दो मैक्सिमम लेकिन वो 95 उसमें नहीं आना चाहिए। तो ऑब्वियसली
मैं क्या करूंगा? सेलेक्ट मैक्स सैलरी एज जो भी मैंने नाम देना है सेकंड हाईएस्ट जो भी नाम एलआई क्रिएट कर दिया फ्रॉम एंप्लई
वेयर सैलरी लेस देन दिस वेयर सैलरी लेस देन 95000 कहां-कहां पे सैलरी 95 से कम है? 1 2 3 4 5 ये सारी 95 से कम है। यस और
इनमें से जो सबसे हाईएस्ट है मैक्सिमम वो निकाल दो। ये सारी 95 से कम है। लेकिन इनमें से जो मैक्सिमम है वो है 92,000 तो
92,000 आपका आंसर आ जाएगा। आप लेस देन भी लगा सकते हो। नॉट इन भी लगा सकते हो। इस तरीके से
मल्टीपल कीवर्ड यूज़ होते हैं। अच्छा ये सारे पॉइंट जो है वो आपको नोट होने चाहिए। वैसे डिस्टिंक्ट के लिए हम लोग एक कीवर्ड
भी यूज़ करते हैं। उसका नाम होता है डिस्टिंक्ट। वो बेसिकली करता क्या है कि अगर डुप्लीकेट डेटा आ रहा है। कोई भी कॉलम
में अगर डुप्लीकेट डेटा आ रहा है। जैसे फॉर एग्जांपल अगर आउटपुट आ रही है 10 10 20 तो डिस्टिंक्ट क्या करता है? सिर्फ 10
और 20 दिखाएगा। रिपीट नहीं करता। ये बाय चांस जो है वो अगर पूछ ले तो आपको पता होना चाहिए। इसका भी स्नैपशॉट ले देन राइट
अ क्वेरी टू फाइंड द एंप्लाइजज़ अर्निंग मोर देन द कंपनीज़ एवरेज सैलरी। अब ये भी कहीं ना कहीं क्वेश्चन सैलरी से रिलेटेड
है और इसमें भी एग्रीगेट फंक्शन यूज़ हो रहा है। तो देखो सबसे पहले इन क्वेरी में आप क्या लिखो? सेलेक्ट एवरेज सैलरी फ्रॉम
द एंप्लई। मतलब पूरे टेबल की जो एवरेज सैलरी है वो निकाल लो। क्या आया जी? इन सबका टोटल कर दो। डिवाइड बाय छ कर दो। जो
भी आउटपुट आएगा जो भी x अमाउंट आ रहा है वो x अमाउंट इसका आउटपुट आ जाएगा। सिर्फ अंदर वाली क्वेरी का ये आंसर आ जाएगा। अब
मुझे वो सारी एंप्लाइजज़ की सैलरी निकालनी है जिनकी इससे ज्यादा हो। तो क्या करेंगे? बाहर एक आउटर क्वेरी में लिख दो। सेलेक्ट
जो भी मैं आउटपुट में रिप्रेजेंट करना चाहता हूं। फ्रॉम एंप्लई वेयर सैलरी ग्रेटर दैन। ग्रेटर दैन में जो भी ग्रेटर
दैन x आएगा इसका एवरेज वो वो सैलरीज़ आपको दिखा देगा। तो ये कितना इजी हो गया। देखो करना कितना इजी है। लेकिन इसको अगर लॉजिक
के साथ समझोगे ना तो फिर आपको बड़ा मजा आएगा। ऐसे जैसे मैथमेटिक्स में होता है ना रटने वाली चीज़ नहीं है। ये क्रमिंग नहीं
करना। इसको एग्जीक्यूट करके देखोगे तो और भी मजा आएगा। वैसे मैंने अलग से बहुत सारी क्वेरीज़ ऑलरेडी बना रखी हैं गेट स्मैशर्स
की प्लेलिस्ट में, सीक्वल की प्लेलिस्ट में, डीबीएमएस की प्लेलिस्ट में। आप उसको भी चेक कर सकते हो। ऑलदो आप करते भी होगे
बट फिर भी ये वाली तो एक वन शॉट में पूरा ही हो गया। देन राइट अ क्वेरी टू फाइंड द हाईएस्ट सैलरी इन ईच डिपार्टमेंट। मतलब
इंजीनियरिंग में कौन सबसे ज्यादा सैलरी ले रहा है? बताओ भाई। आईटी में कौन ले रहा है? सबसे ज्यादा। एचआर में कौन सबसे
ज्यादा कमा रहा है? मुझे उन सबका डाटा चाहिए। तो ऑब्वियसली अब आपके दिमाग में आ जाएगा कि यार डिपार्टमेंट वाइज मुझे कुछ
काम करना पड़ेगा। पूरे टेबल की नहीं मुझे हर डिपार्टमेंट की मैक्सिमम निकालनी है। तो मैं क्या लगाऊंगा? ग्रुप बाय लगा
दूंगा। तो ग्रुप बाय डिपार्टमेंट करना बहुत जरूरी है। और उसके बाद सेलेक्ट डिपार्टमेंट कॉमा मैक्स सैलरी। तो ये क्या
करेगा? एक तरह से ग्रुप बाय कर देगा। इंजीनियरिंग इंजीनियरिंग इंजीनियरिंग एक तरफ हो गया। सेल्स सेल्स सेल्स एक तरफ हो
गया। और इंजीनियरिंग में जो भी मैक्सिमम सैलरी है सारी सैलरी है लेकिन उनमें से मैक्सिमम कौन सी है? 95 और सेल्स वाले में
से मैक्सिमम कौन सी है आपकी? आई थिंक 92 तो ऑब्वियसली ये क्या करेगा? 92 वाली जो है वो रिप्रेजेंट कर देगा और साथ में
डिपार्टमेंट इंजीनियरिंग 95 एंड सेल्स 92 तो इस तरीके से आपका आउटपुट में आ जाएगा। अच्छा इसमें एक और चीज यहां पे याद रखना
कि ग्रुप बाय में जो भी कीवर्ड हम लोग यूज़ करते हैं, जो भी एट्रिब्यूट हम ग्रुप बाय में यूज़ करते हैं ना, वही सेम एट्रिब्यूट
आपका सेलेक्ट के साथ होना चाहिए। लेकिन अगर आप कोई एक्स्ट्रा एट्रिब्यूट जैसे मैंने ग्रुप बाय किया डिपार्टमेंट तो आपका
डिपार्टमेंट ही आ सकता है सेलेक्ट में कोई और एट्रिब्यूट नहीं आ सकता। अगर आप कोई और एट्रिब्यूट यूज़ करना चाहते हो आपके दिमाग
में आएगा सर सैलरी तो आपने यूज़ की है लेकिन सैलरी मैंने अकेला यूज़ नहीं किया। उसको मैंने एग्रीगेट फंक्शन के साथ यूज़
किया है। तो मैक्स, मीन, काउंट, सम ये सारे के सारे आपके जो है वो एवरेज ये पांचों जो है वो आपके यूज़ हो सकते हैं
एग्रीगेट। लेकिन उसके अलावा डायरेक्टली आप यूज़ नहीं कर सकते। अगर डायरेक्टली करना है तो फिर आपको ग्रुप बाय के साथ दोनों
कीवर्ड जो भी आप करना चाहते हो अभी आपको दिखाता हूं। नेक्स्ट वाले क्वेश्चन में आपको पता लगेगा। ये देखो राइट अ क्वेरी टू
फाइंड द एंप्लाइजज़ हुस सैलरी इज़ हायर देन देयर मैनेजर सैलरी। अगेन बड़ा इंपॉर्टेंट है जी। मैनेजर की सैलरी से ज्यादा सैलरी
हो। वो बंदा बताओ भाई। ये भी कमाल का ही बंदा होगा कोई जो अपने ही मैनेजर से ज्यादा कमा रहा है भाई हमें ढूंढना पड़ेगा
ऐसा कौन सा खतरनाक है अब मेरा टेबल तो एक है अब इस टेबल में मैं निकालूं कैसे कि भैया वो एंप्लई भी है और मैनेजर से ज्यादा
कमा रहा है ध्यान से सुनना इसके लिए लगाना पड़ेगा सेल्फ जॉइन सेल्फ जॉइन क्या कहता है कि एक टेबल को उसी से मल्टीप्लाई करो
मैंने जानबूझ के इस टेबल को इसी से मल्टीप्लाई करके यहां पे लिख भी दिया ताकि आपको समझा सकूं करना क्या है फ्रॉम को
देखो यहां पे क्या है फ्रॉम सिर्फ फ्रॉम को देखो बाकियों को भूल जाओ फ्रॉम एंप्लॉय ्लॉई ई मैंने एक छोटा नाम क्रिएट कर दिया
एलाइस क्रिएट कर दिया जॉइन एंप्लई एम मतलब एक ही ए्प्लई का मैंने एक एलाइस बना दिया ई और उसी एंप्लई का मैंने एक एलाइस बना
दिया नाम रख दिया उसका एम छोटा सा ताकि बार-बार बड़ा-बड़ा ए्प्लई मैनेजर ये सब ना लिखना पड़े ऑन मैंने यहां पे जो जॉइन किया
है दोनों टेबल को मतलब एक ही टेबल को खुद से सेल्फ जॉइन किया है हमेशा जॉइन जब भी लगता है तो याद रखना आपकी जो एक कॉमन
एट्रिब्यूट है उसको हमेशा बराबर रखना पड़ेगा तो ऑन ई डॉट मैनेजर आईडी इक्वल टू एम डॉट एंप्लई आईडी कहने का मतलब है वो
मैनेजर और एंप्लई पहले तो आपको चेक करना पड़ेगा देखो एंप्लई डॉट ई डॉट मैनेजर आईडी ई डॉट मैनेजर आईडी क्या है यहां पे 105
इसको आप e मान लो और इसको आप एम मान लो है एक ही टेबल लेकिन उसको मैंने एक तरह से डमी उसका आईडिया जो है वो नया कॉपी क्रिएट
कर दिया क्लोन क्रिएट कर दिया ठीक है अब मैं बोल रहा हूं e डॉट मैनेजर आईडी मैनेजर आईडी क्या है 105 इक्वल टू m डॉट एंप्लई
आईडी। अब एंप्लई आईडी में 105 कहां है? ये रहा। मेरे को सबसे पहले तो ये भी पता लगाना पड़ेगा ना कि भैया वो बंदा भी है और
वो मैनेजर भी है। पहले पता तो हां जी। 105 एक बंदा है जो किसी का मैनेजर भी है और यस 105 मेरा एंप्लई है। ठीक है ना? ऐसा भी हो
सकता है कि भैया कोई बंदा जिसका मैनेजर है ही नहीं। जैसे ये देखो ये है ही नहीं। इन ये खुद ही मैनेजर है। इनका कोई मैनेजर है
ही नहीं। तो फिर ये मेरे आउटपुट में आने नहीं चाहिए। तो ये पॉइंट थोड़ा सा यहां पे ध्यान रखना पड़ेगा। तो 105 105 मैच हो
गया। उसके बाद E डॉट सैलरी इज़ ग्रेटर दैन M डॉट सैलरी। अब E की जो सैलरी है देखो क्या है जी E की सैलरी 95000 और एम में जो
इसकी सैलरी है वो क्या है? 90 95000 इज़ ग्रेटर दैन 90 यस लो जी मिल गया आपको पहला ही बंदा। आरव है वो वो खतरनाक बंदा कौन
है? आरव। आरव एक ऐसा बंदा है जो एंप्लई है लेकिन अपने मैनेजर 105 रोहन से ज्यादा कमा रहा है। क्योंकि रोहन 90,000 और यह कमा
रहा है 95,000। तो ये मेरा आउटपुट में आ जाएगा। आउटपुट में हमने क्या दिखाना है? जो भी आप दिखाना चाहते हो ई डॉट एंप्लई
नेम, सैलरी जिस जो भी दिखाना चाहते हो आप उस तरीके से नाम डॉट यूज करके ई डॉट या एम डॉट इस तरीके से दिखा सकते हो। ऐसे ही एक
और भी चेक कर लो। जैसे फॉर एग्जांपल 105 भैया रोहन तो एक और बंदे का भी है। मीरा का भी है वो मैनेजर। लेकिन मीरा की सैलरी
72,000 है और उसके मैनेजर की 90 तो ये नहीं आउटपुट में आएगा। फिर आ गया जी उसके बाद कबीर 65,000 इसकी क्या है जी 106। 106
बंदे की सैलरी क्या है? नेहा की सैलरी है जी 88,000 बट यार एंप्लई कम ही कमा रहा है। लेकिन अगर मैं यहां पे देखूं लो जी एक
और मिल गया खतरनाक बंदा ईशा ईशा जी कमा रही है 92,000 और उनका जो मैनेजर है 106 नेहा वो कमा रही है 88,000। लो जी 88 से
ज्यादा कमा रही है ये। तो यानी आउटपुट में ईशा एंड आरव आ जाएगा। तो ये चीजें आपको थोड़ी सी जब करोगे ना दोबारादबारा थोड़ा
सा प्रैक्टिस करोगे तो आपको समझ में आ जाएगा। ये चीजें करनी बहुत जरूरी है क्योंकि इनसे ऊपर कुछ है ही नहीं और इसका
एक बार स्नैपशॉट जरूर ले लेना ताकि आपको पता लगे। देन राइट अ क्वेरी टू डिस्प्ले ईच ऑर्डर विद इन द विद द कस्टमर नेम।
अच्छा राइट अ क्वेरी टू डिस्प्ले ईच ऑर्डर विद द कस्टमर नेम। मतलब देखो सबसे पहले तो यहां पे अब दो टेबल आ गए हैं। पहले तो
समझो एक टेबल है मेरा कस्टमर एक टेबल है ऑर्डर। कस्टमर जो है वो ऑर्डर दे रहे हैं मल्टीपल। ठीक है? अब मुझे क्या करना है कि
भैया कस्टमर ने कुछ आर्डर किया। किस बंदे ने जो ऑर्डर किया है उसका नेम क्या है? जैसे अदिति ने क्या ऑर्डर किया है? राहुल
ने ऑर्डर किया है या नहीं किया? सिमरन ने ऑर्डर किया है या नहीं किया? अर्जुन ने ऑर्डर किया है या नहीं किया? ये मुझे
फाइंड आउट करना है। तो कैसे फाइंड आउट करोगे? ऑब्वियसली पहले तो आपको फ्रॉम में ऑर्डर टेबल जॉइन करना पड़ेगा कस्टमर टेबल
के साथ। ठीक है? तो मैंने ऑर्डर का एक छोटा नाम बना दिया। आप नहीं बनाना चाहते उसको भी लिख सकते हो। फिर आपको लिखना
पड़ेगा ऑर्डर अंडरस्कोर दिस इक्वल टू कस्टमर दिस दिस दिस। तो इसीलिए हम छोटा नेम यूज़ करते हैं। ऑर्डर ओ जॉइन कस्टमर
सी। और मैंने क्या किया? ओ कस्टमर आईडी एंड C डॉट कस्टमर आईडी। मतलब वो कस्टमर जो है वो आपके कस्टमर टेबल में है। और अगर
उसने कुछ ना कुछ ऑर्डर दिया होगा तो वो उसकी एंट्री ऑर्डर में जरूर होगी। अदरवाइज़ तो ऑर्डर में एंट्री होएगी नहीं। देखो वन
ने ऑर्डर दिया है। इसलिए इसका नाम आ गया। ठीक है जी? यहां पे इसकी आईडी आ गई। तो वन यस टू वन यस। है। वन ने तो दो ऑर्डर दिए
हैं। टू ने भी दो ऑर्डर दिए हैं। थ्री ने भी एक ऑर्डर दिया है। लेकिन फोर ने कोई ऑर्डर ही नहीं दिया। यानी अर्जुन ने कोई
ऑर्डर नहीं दिया। तो 1 = 1 मैच करेगा। यस। 1 = 1 मैच कर रहा है। टू यहां पे भी मैच कर रहा है। थ्री के कॉस्पोंडिंग में मेरे
को मैच मिल गया। लेकिन फोर के कॉस्पोंडिंग मेरे को कोई मैच नहीं मिला। यानी आपका जो है वो फोर आउटपुट में नहीं आएगा। सिंपली
ये दिखा देगा अदिति, राहुल एंड सिमरन। तो यहां पे ऑर्डर आईडी क्या है? जी आपकी? ऑर्डर आईडी है 501 और उसके कॉरेस्पोंडिंग
जो है वो कस्टमर का नेम है अदिति 502 कस्टमर का नेम है अदिति 503 कस्टमर का नेम है जी आपका राहुल 504 कस्टमर का नेम है
राहुल और 505 कस्टमर का नेम है सिमरन बस अर्जुन नहीं आएगा आउटपुट में ये चीज आपको दिखा इसके अलावा अगर आपने अमाउंट या
स्टेटस भी दिखाना है वो भी दिखा सकते हो बट मेन कहानी आपको पता लग गया कि भैया इन दोनों को जॉइन कैसे करते हैं इसको नेचुरल
जॉइन या फिर इक्विजॉइन भी बोल सकते हो क्योंकि दोनों में जो कॉमन एट्रिब्यूट है उसको हम बराबर रख रहे हैं। उसको इक्वल
करने की कोशिश कर रहे हैं। तो ये चीज होती है। नेक्स्ट राइट अ क्वेरी टू फाइंड द कस्टमर्स हु हैव नेवर प्लेस्ड एन ऑर्डर।
अगेन बड़ा इंपॉर्टेंट है। हर क्वेश्चन में एक नया ट्विस्ट है। भैया उन बंदों का नाम बताओ जिन्होंने अभी तक ऑर्डर ही नहीं
प्लेस किया। जैसे अभी हमने किया है। कौन है जी वो बंदा? अर्जुन है। लेकिन अर्जुन ऐसा थोड़ी ना कि आप सेलेक्ट स्टार फ्रॉम
टेबल वेयर नेम इज़ इक्वल टू अर्जुन। भैया ये तो हमने देख के पता लगाया है। अदरवाइज क्वेरी में कैसे करना पड़ेगा? तो क्वेरी
में याद रखना इसमें यूज़ करना पड़ेगा हमें लेफ्ट आउटर जॉइन। लेफ्ट आउटर जॉइन बेसिकली क्या करता है? अगर मेरे दो टेबल हैं उन
दोनों टेबल में जो कॉमन एट्रिब्यूट है कॉमन जो है जो दोनों टेबल में है उसको तो वो आउटपुट में दिखाएगा ही। नेचुरल जो है
वो इक्विजॉइन वाला आउटपुट में आएगा। लेफ्ट में जो नहीं है ना जो पार्टिसिपेट नहीं कर रहा उसका आउटपुट भी आता है। तो याद रखना
ये पता है क्या करेगा? यह इस तरीके से दिखाएगा कि भैया 501 है और उसके कॉस्पोंडिंग वन है। 502 है वन है। मतलब वन
वन यहां पे भी है। ठीक है? और 502 के कॉस्पोंडिंग जो है वो वन है। 503 के कॉस्पोंडिंग टू है। 504 के कॉस्पोंडिंग टू
है। 505 के कॉस्पोंडिंग थ्री है। लेकिन जो फोर है ना फोर के कॉस्पोंडिंग इसको कुछ नहीं मिल रहा। तो वन वाली आउटपुट टू और
थ्री ये तो आपकी आउटपुट में आएगी क्योंकि ये तो दोनों में कॉमन है। वन मैच कर रहा है, टू मैच कर रहा है, थ्री मैच कर रहा
है। लेकिन फोर के कॉरेस्पोंडिंग जो आर्डर आईडी है वो होगी नल। क्योंकि वन के कॉस्पोंडिंग भी ऑर्डर आईडी है। टू के
कॉस्पोंडिंग भी ऑर्डर आईडीज है। थ्री के कॉस्पोंडिंग भी ऑर्डर आईडी है। लेकिन फोर के कॉस्पोंडिंग ऑर्डर आईडी क्या होगी? नल।
और मैंने क्या किया यहां पे? वेयर ऑर्डर आईडी इज़ इक्वल टू नल। इज़ नल लिख दोगे तब भी काम चल जाएगा। इज़ नल। तो यानी ये सिर्फ
फोर वाला आउटपुट में दिखा देगा। बाकियों को छोड़ देगा और फोर वाला ही तो हमें चाहिए जिसने अभी तक कोई आर्डर नहीं दिया है। तो
ये पॉइंट बहुत इंपॉर्टेंट है। अगर आप डिटेल में लेफ्ट आउटर राइट आउटर समझना चाहते हो तो एक बार मैं ऊपर आई सेक्शन में
लिंक दे देता हूं। आप फुल आउटर सारे कर लेना एक बार ताकि आपको डिटेल में भी पता लग जाए कि ये कैसे काम करते हैं। वैसे
मैंने आपको मेन कहानी बता ही दी है। नेक्स्ट आ गया राइट अ क्वेरी टू फाइंड द कस्टमर्स हु प्लेस्ड मोर देन वन ऑर्डर।
मतलब अब ये बंदे बताओ कि जिन्होंने एक से ज्यादा ऑर्डर दिए हैं तो कोई बात नहीं। इसमें इतनी कोई बड़ी बात है ही नहीं। मुझे
पता है एक कस्टमर है, एक ऑर्डर है। अब ऑब्वियसली कस्टमर और यहां पे उस कस्टमर ने कितने-कितने ऑर्डर दिए हैं मेरे को यहां
से पता लग जाएगा। लेकिन सबसे पहले तो फ्रॉम कस्टमर सी जॉइन ऑर्डर ओ ऑब्वियसली ये लाइन तो कॉमन है। दोनों टेबल को जॉइन
तो करना पड़ेगा। क्योंकि कुछ डेटा यहां पे पड़ा है। कुछ डेटा मेरा यहां पे पड़ा है। अब यहां पे देखो ग्रुप बाय मैंने क्या
किया? पहले तो कस्टमर आईडी इक्वल टू कस्टमर आईडी। ये तो जॉइन की कंडीशन है। जब भी हम ज्वॉइ करते हैं ना गाइस नोट कर लो
दोनों टेबल में जो कॉमन एट्रिब्यूट होता है उसको हमेशा बराबर रखना पड़ता है कि इधर की आईडी और इधर की आईडी मैच कर रही है।
पहले तो वो निकाल लो। हो सकता है कि अर्जुन बंदे ने अभी तक ऑर्डर दिया ही नहीं है। तो अर्जुन को हम कंसीडर ही क्यों
करें? जो बंदा अभी तक आर्डर ही नहीं दे रहा उसको भाई यहां से बाहर निकालो। हमें सिर्फ किससे मतलब है? 1 2 3 और यहां पे
कोई 1 2 इनसे मतलब है। मतलब फोर वाले से हमें कोई मतलब नहीं है। यह सबसे पहले आपका इक्व जॉइन करता है। उसके बाद ग्रुप बाय कर
दिया हमने कस्टमर आईडी एंड कस्टमर नेम। कस्टमर आईडी से ग्रुप बाय करोगे तो ऑब्वियसली ये क्या आउटपुट में आएगा? 1 2 3
अब आपको पता है वन के कॉस्पोंडिंग कितने लोग हैं जी? वन के वन ने कितने ऑर्डर दिए हैं? दो ऑर्डर दिए हैं। टू ने कितने आर्डर
दिए हैं? टू थ्री ने सिर्फ एक ऑर्डर दिए। तो वो काउंट कर लेगा क्योंकि जैसे ही आपने ग्रुप बाय करा वो काउंट। लेकिन हैविंग
काउंट्स आर मैंने बताया था ना हैविंग काउंट्स आर ग्रेटर देन वन तो भैया ये आउटपुट से निकल जाएगा सिर्फ ये दो रह
जाएंगे और ये दो कौन है ये कौन है जी कस्टमर वन एंड कस्टमर टू अदिति है एंड राहुल है तो अदिति एंड राहुल जो है वो
दोनों आपके आउटपुट में आ जाएंगे और अगर आप सोच रहे होंगे कि सर हमने कस्टमर नेम तो ठीक है हमने यहां पे ये क्यों दिया है
कस्टमर का अच्छा कस्टमर नेम क्यों दिया है यहां पे क्योंकि गाइस मैंने अभी बताया ना ग्रुप बाय के साथ जो भी हम कीवर्ड यूज़
करते हैं जो जो भी हम एट्रिब्यूट यूज़ करते हैं। हम सिर्फ उसको यहां पे यूज़ कर सकते हैं। लेकिन अब मुझे क्वेश्चन में पूछा था
कस्टमर का नेम बताना है। अच्छा नहीं भी बोला चलो कोई बात नहीं। कस्टमर का अगर नेम भी प्रिंट करना चाहते हो आईडी तो प्रिंट
कर देगा ये वन टू। लेकिन अगर उनका नेम भी प्रिंट करना चाहते हो अदिति एंड राहुल तो उसके लिए आपको ग्रुप बाय में कस्टमर नेम
भी लिखना पड़ेगा। तभी आप इस चीज को यहां पे यूज़ कर सकते हो। अदरवाइज़ आप लिख नहीं सकते। क्योंकि या तो वो ग्रुप बाय में यूज़
हो रहा हो वही एट्रिब्यूट या फिर उसके साथ कोई ऐसा एट्रिब्यूट जिसमें कोई ना कोई एग्रीगेट फंक्शन यूज़ कर सकते हैं। बट
इसमें एग्रीगेट आपका यूज़ हो ही नहीं रहा है। काउंट स्टार तो आप डायरेक्टली कर रहे हो। यहां पे किसी के साथ जो है वो
एट्रिब्यूट के साथ नहीं लगा रहे। ठीक है? तो आई होप ये चीजें आपको थोड़ी सी समझ में आ रही होंगी। क्योंकि कई कई क्वेश्चन ना
थोड़े से टिपिकल होते हैं। लेकिन जब आप दोबारा करोगे ना इसको समझने की कोशिश करोगे तो मस्त ऐसे मस्के की तरह समझ में
आएगा। देन राइट अ क्वेरी टू फाइंड द हाईएस्ट स्पेंडिंग कस्टमर बेस्ड ऑन देयर डिलीवर ऑर्डर। मतलब जो बंदा सबसे ज्यादा
स्पेंड कर रहा है भाई आप भी बताओ कर रहे हो कि नहीं? आज के टाइम पे सब लोग जो है वो ऑनलाइन शॉपिंग करते हैं। तो मेरे को वो
करना है भैया जिनजिनों ने सबसे ज्यादा पैसे खर्चे हैं उनका नेम बताओ जी। तो यहां पे अदिति, राहुल, सिमरन और इनमें से सबसे
ज्यादा। तो अगर आपका स्टेटस देखा जाए तो डिलीवरी डिलीवरी डिलीवर यह पेंडिंग है और यह कैंसिल्ड है। तो जिनका आर्डर डिलीवर हो
चुका है और जिनका टोटल सबसे ज्यादा है मुझे वो निकालना है। तो देखो ध्यान से सबसे पहले तो फ्रॉम कस्टमर का मैंने
एनालाइज़ कर दिया सी जॉइन ऑर्डर ओ और यहां पे कॉमन एट्रिब्यूट को मैंने इक्वल रख दिया। ये तो भैया जॉइन की कंडीशन है ही
बाय डिफ़ॉल्ट। उसके बाद मैंने क्या किया? वेयर स्टेटस इज़ इक्वल टू डिलीवर। सबसे पहले तो भैया स्टेटस डिलीवर जो डिलीवर ही
नहीं हुए उनको हमने काउंट नहीं करना। तो यानी पेंडिंग वाले को काट दो, कैंसिल वाले को काट दो। सिर्फ मेरे को इन तीनों से
मतलब है डिलीवर वाले से। ठीक है? फिर ग्रुप बाय कस्टमर आईडी। अब मैंने क्या किया? ग्रुप बाय कर दिया कस्टमर आईडी। तो
ग्रुप बाय करोगे तो वन वन इकट्ठा हो गया और टू। अब आपके दिमाग में सर टू ने भी तो दो किए लेकिन गाइस वो डिलीवर नहीं है। तो
ये वेयर क्लॉज़ से निकल जाएगा। तो वन वन वाले कितने बंदे हैं? दो बंदे हैं और टू वाला सिर्फ एक बंदा है और यहां पे उसके
बाद हमने क्या किया? ग्रुप बाय तो कर ही दिया। उसके बाद हमने ऑर्डर बाय कर दिया टोटल स्पेंडिंग डिसेंडिंग में। मतलब इनका
जो टोटल ऑर्डर है क्योंकि हमने यहां पे क्या निकाला है? सम ऑफ़ द अमाउंट निकाल दिया। तो सम ऑफ़ द अमाउंट मतलब इन दोनों का
सम करोगे तो 24 ये हो गया 5600 और इसका सम हो गया जी आपका 1800। ठीक है? तो इसमें से मैंने क्या कर दिया जी? लिमिट वन। लिमिट
वन का मतलब होता है कि जो सबसे ऊपर वाली रो है उसको सेलेक्ट कर लेगा। अगर मल्टीपल रो है। लिमिट वन का मतलब है सबसे ऊपर
वाली। लिमिट टू का मतलब है दो ऊपर वाली। लिमिट थ्री का मतलब ऊपर की तीन। बट हमें तो सिर्फ वो वाला चाहिए जो सबसे हाईएस्ट
जो है वो सामान ले रहा है। सबसे ज्यादा खर्च रहा है पैसे। तो वो मेरा जो है वो अदिति आ जाएगा। तो इस तरीके से क्वेश्चंस
को थोड़ा-थोड़ा करके जब आप इसको ब्रेक कर करके समझोगे ना तब आपको चीजें और मजे से समझ में आएंगी। और सबसे बढ़िया जी
एग्जीक्यूट करके देखो। तो आई होप ये वाले क्वेश्चन तो बहुत समझ में आ गए होंगे। अब नेक्स्ट टाइप के क्वेश्चंस पे चलते हैं।
नेक्स्ट हमारे पास है क्वेश्चन नंबर 11 और ये सिनेरियो बेस्ड क्वेश्चन है। क्या बोल रहा है? ए टेबल हैज़ 100 मिलियन रिकॉर्ड्स
एंड यू वांट टू रिमूव ऑल रिकॉर्ड्स एज क्विकली एज़ पॉसिबल व्हाइल कीपिंग द टेबल व्हिच एसक्यूएल कमांड विल यू यूज़? तो यहां
पे क्वेश्चन आया हुआ है आपका डिलीशन के ऊपर कि भैया अगर मेरे को डिलीट करनी है रोज़। तो यहां पे दो होती है हमारे पास। एक
तो होती है ट्रंकेट जो कि डीडीएल के अंदर आती है और एक होती है डिलीट कमांड जो कि डीएमएल के अंदर आती है। लेकिन अगर मुझे
क्विकली करना है एक बार में सारी रोज़ को डिलीट करना है तो हम लोग यूज़ करते हैं ट्रंकेट कमांड। ट्रंकेट टेबल और उसके बाद
हम लोग टेबल का नेम। कई जगह पे डिपेंड करता है थोड़ा सा। कई बार ओरेकल में, सीक्वल सर्वर में, मायक्यूएल में थोड़ा
बहुत सिंटेक्स का फर्क होता है। कहीं पे आप ट्रंकेट और सीधा टेबल का नेम भी लिख सकते हो। बट मेनली ट्रंक के टेबल टेबल नेम
होता है। और यहां पे क्या होता है कि आपकी एक बार में सारी रोज़ डिलीट हो जाएंगी। लेकिन जो टेबल का स्ट्रक्चर होता है ना
टेबल का पूरा जो स्ट्रक्चर है कि उसमें कितने कॉलम्स थे? उसमें कितना जो है वो कॉलम का डेटा टाइप था। प्राइमरी की कौन सी
थी? वो सारी एज़ इट इज़ बची रहेगी। क्योंकि हमने ड्रॉप नहीं किया। तो कई बार पूछ लेते हैं भैया ड्रॉप क्या करता है? सब कुछ ही
डिलीट कर देगा। लेकिन ट्रंकेट सिर्फ रोज़ को डिलीट करेगा। टेबल का स्ट्रक्चर एज़ इट इज़ रहेगा। और एक होती है हमारी डिलीट।
डिलीट बेसिकली क्या करता है? वन बाय वन रो को डिलीट करता है। तो थोड़ा टाइम कंज्यूमिंग है। लेकिन डिलीट का एक फायदा
क्या है? कि अगर आपने एक्सीडेंटली या गलती से अगर आपने डिलीट कर दी रोज़ और अगर आप रिकवर करना चाहते हो तो डिलीट बोलेगा ठीक
है मैं रिकवर कर दूंगा। लेकिन ट्रंकेट जो है वो रिकवर नहीं करता। बस ये पॉइंट भी आपको पता होना चाहिए। यही चीज इंटरव्यू
में आपसे पूछ सकते हैं। देन अ न्यू इंटर्न शुड ओनली बी एबल टू व्यू द एंप्लई टेबल बट शुड नॉट मॉडिफाइड। देखो अब क्वेश्चन थोड़ा
सा ना मैंने यहां पे डीडीएल डीएमएल आपका जो डीसीएल कमांड्स हैं टीक्यूएल कमांड्स है इनके ऊपर थोड़े से क्वेश्चन डाले हैं
क्योंकि ऐसा नहीं है कि सारे क्वेरी वाले ही आपसे पूछेंगे दे माइट स्टार्ट फ्रॉम द बेसिक क्वेश्चन कि भैया आपको पता है कि
डीडीएल है डीएमएल है या जैसे ये क्वेश्चन आपका डीसीएल के ऊपर आया हुआ है कि जहां पे हमारे पास दो कमांड्स होती है एक होती है
ग्रांट और एक होती है रिवॉक अगर मुझे परमिशन देनी है किसी नए यूजर को और परमिशन देनी है कि भैया वो सिर्फ और सिर्फ एंप्लई
टेबल को ये जो भी टेबल दिया है उसको मुझे सिर्फ सेलेक्ट कर सके। उसमें कुछ भी इंसर्ट या डिलीट या अपडेट ना कर सके। तो
मैं क्या करूंगा? ग्रांट सेलेक्ट ऑन जिस टेबल के ऊपर देनी है टू जिस बंदे को देनी है जो भी उस यूजर का नेम होगा उसको हम इस
तरीके से दे सकते हैं। और अगर वापस लेनी है तो रिवॉक फ्रॉम जो भी मेरा यूजर होगा वो हम रिवॉक भी कर सकते हैं। और यहां पे
जो है वो आप जो भी देना चाहते हो अगर इंसर्ट देना चाहते हो तो ग्रांट इंसर्ट ग्रांट अपडेट ग्रांट डिलीट। सो बेस्ड ऑन
जो बंदा है उसका जो रोल है उसके हिसाब से हम लोग असाइन करते हैं। वैसे हम लोग डेटाबेस में रोल्स भी बना सकते हैं। रोल्स
बेसिकली क्या होते हैं? एक तरह से आप कह लो बंडल है। मतलब आप एक-एक करके सब बंदों को एक-एक करके परमिशन दे रहे हो कि डिलीशन
तू ये ले ले, तू वो ले ले। नहीं हम लोग रोल बना देंगे। जैसे स्टूडेंट एक रोल है। ठीक है? आपके कॉलेज में जो फैकल्टी है वो
एक रोल है। जो एचओडी है वो एक रोल है। जो लेट्स सपोज प्रिंसिपल है वो एक रोल है। तो हम लोग जो है ना कुछ-कुछ परमिशंस असाइन कर
देंगे इस रोल को। तो जैसे ही कोई नया बच्चा आया हमने उसको ये रोल दे दिया। कोई नया टीचर आया ये रोल दे दिया। कोई नया
एचओडी प्रमोट हुआ ये रोल दे दिया। तो इस तरीके से हम लोग रोल्स असाइन कर देते हैं ताकि हमारा जो है वो टाइम सेव हो जाए। इन
केस अगर आपसे पूछ रहे हैं तो ये नोट कर लेना। देन हमारे पास क्वेश्चन आता है नेक्स्ट 13 एन एलाइस क्रिएटेड इन द
सेलेक्ट लिस्ट कैन नॉट बी रेफरेंस्ड इन द वेयर क्लॉज़ ऑफ़ द सेम क्वेरी हाउ डज़ एसक्यूएल लॉजिक एग्ज़क्यूशन ऑर्डर? देखो
कुछ नहीं है। आपने क्वेरी को ध्यान से देखना है। क्वेरी में हमारे पास आप आई होप कि क्वेरी आपको विज़िबल होगी। क्वेरी में
बेसिकली क्या लिखा हुआ है? सेलेक्ट सैलरी इंटू 12। मैंने कुछ यहां पे अपडेट किया सैलरी के अंदर एज एनुअल अंडरस्कोर सैलरी
फ्रॉम एंप्लई वेयर एनुअल सैलरी इज़ ग्रेटर देन जो भी मेरा 6 लाख यहां पे अमाउंट लिखा हुआ है। तो देखो ये क्वेरी एग्जीक्यूट
नहीं होगी। क्यों नहीं एग्जीक्यूट होगी? क्योंकि जब भी हम क्वेरी को एग्जीक्यूट करते हैं तो सबसे पहली चीज एग्जीक्यूट
होती है आपकी फ्रॉम फ्रॉम। अगर मल्टीपल टेबल है तो जॉइन होगा इसके बाद। लेकिन अगर एक टेबल है तो सिंपल एक टेबल से डेटा उठा
लेंगे। उसके बाद जब फ्रॉम मेरा टेबल आ गया दूसरी चीज जो यहां पे एग्जीक्यूट होगी वो होगी वेयर और वेयर में जब ये देखेगा एनुअल
सैलरी एनुअल सैलरी तो कोई कॉलम ही नहीं है मेरे पास कॉलम जो है वो उसका नाम है सैलरी मेरे पास एनुअल सैलरी का नाम का कुछ नहीं
है एनुअल सैलरी तो हमने एलाइज क्रिएट की है सेलेक्ट के अंदर लेकिन सेलेक्ट तो अभी आया ही नहीं कंट्रोल में आया ही नहीं तो
यहां पे वेयर सैलरी ग्रेटर दैन आना चाहिए था तभी एग्जीक्यूट होगी क्योंकि जब वेयर के बाद इवन वेयर के बाद आपका ग्रुप ग्रुप
बाय एग्जीक्यूट होता है। फिर ग्रुप बाय के बाद हैविंग एग्जीक्यूट होता है। फिर जाके आपकी कहीं सेलेक्ट की टर्न आती है। और
सेलेक्ट के बाद भी अगर आपसे पूछ ले कि कोई ऐसी कमांड है जो सेलेक्ट के बाद एग्जीक्यूट होती है। दैट इज ऑर्डर बाय।
आपने जो सेलेक्ट करना है कर लो। उसके बाद अगर आपने उसको असेंडिंग या डिसेंडिंग में दिखाना है तो ऑर्डर बाय। ऑर्डर बाय के बाद
भी लास्ट में एक चीज होती है लिमिट कि आपने लास्ट में कौन सी रो उठानी है, ऊपर की रो उठानी है, नीचे की रो उठानी है तो
हम लोग लिमिट से इस तरीके से फ्लो एग्जीक्यूट होता है। ये चीजें आपको पता होनी चाहिए। कई बार सिनेरियो बेस्ड
क्वेश्चन आपसे घुमा फिरा के पूछ सकते हैं। देन अ रैंकिंग क्वेरी कंटेन द डुप्लीकेट सैलरीज। हाउ रो नंबर, रैंक एंड डेंस रैंक।
हां ये वाले जो आपके छोटे-छोटे फंक्शनंस है ना सीक्वल के अंदर कई बार डायरेक्टली पूछ लेते हैं कि भैया रो नंबर क्या है?
रैंक क्या है? डेंस रैंक क्या है? अब आपके डेटाबेस में कई बार जैसे स्टूडेंट का टेबल है या एंप्लई का टेबल है। मुझे उनको रैंक
देना है कि भैया इसका रैंक पहला है। इस बंदे का रैंक दूसरा है। ऐसा होता है ना स्टूडेंट टेबल में भी। तो लेट्स सपोज
एंप्लई है, सैलरीज है, रो नंबर अगर मुझे देना है तो मैं कैसे दे सकता हूं, रो नंबर सिंपली 1 2 3 4 इस तरीके से ऑटोमेटिकली रो
नंबर साइन कर देता हूं। और उसके लिए मेरे को सिंपली क्या लिखना है? सेलेक्ट एंप्लई कॉमा सैलरी रो अंडरस्कोर नंबर ओवर ऑर्डर
बाय सैलरी डिसेंडिंग। मतलब मैंने यहां पे क्या कर दिया? सैलरी को पहले डिसेंडिंग ऑर्डर में। और उसके साथ मैंने यहां पे रो
नंबर। तो, यह क्या करेगा? सबसे हाईएस्ट सैलरी को रो नंबर वन। सबसे उसके बाद जो सेकंड है 2 3 4 इस तरीके से लेकिन अगर
आपसे पूछ ले कि रैंक और डेंस रैंक में क्या फर्क है? तो बेसिक फर्क क्या है कि अगर मेरा डेटा डुप्लीकेट है। देखो यहां पे
ध्यान से देखो 80000 दो बार आ गया। तो जब मैं रैंक लिखूंगा ना तो 90 वाला सबसे हाईएस्ट सैलरी ले रहा है। ये तो भैया नंबर
वन हो गया। 80000 में दो लोग ले रहे हैं सैलरी। तो या तो मैं इसको रैंक क्या दे दूं? टू और नीचे वाले को भी रैंक क्या
देना पड़ेगा? टू देना पड़ेगा। ऑब्वियसली दोनों की बराबर है सैलरी। लेकिन जो रैंक है ना वो उसके बाद तीन वैल्यू कट कर देगा।
मतलब कहने का वो दो-दो दे दी वैल्यू उसके बाद सीधा चार रैंक आएगा। तीन रैंक यहां पे खत्म हो गया क्योंकि यहां पे डुप्लीकेट था
डेटा। हां अगर डुप्लीकेट ना होता तो फिर वन टू थ्री इस तरीके से आ जाता। लेकिन जो डेंस रैंक है बस यही फर्क है कि डेंस रैंक
जो है वो वन तो दे दिया। उसके बाद टू टू दे दिया लेकिन उसके बाद बीच में स्किप नहीं करता। फिर उसके बाद थ्री रैंक इस
तरीके से देता है। सो बेस्ड ऑन आवर यूज़ केस हम इसको यूज़ कर सकते हैं कि कहां पे रैंक को कहां पे डेंस रैंक को यूज़ करना
है। और आपसे अगर उसमें पूछ लें इंटरव्यू में तो आप इजीली आंसर दे सकते हो। देन अ टेबल कंटेन डुप्लीकेट एंड नल वैल्यूज़ हाउ
काउंट स्टार काउंट ईमेल। बेसिकली क्या होता है? आपके टेबल में कई बार ना नल वैल्यू आ जाती है। जैसे एग्जांपल के तौर
पे मेरा एक टेबल है और उस टेबल में लेट्स सपोज़ मेरे पास एक ही कॉलम है ईमेल। एक ही कॉलम है ईमेल। ठीक है? उस कॉलम के अंदर
मैं वैल्यू्यूज ले लेता हूं। a b [email protected] a b [email protected]
मैंने थोड़ा सा डुप्लीकेट ले रहा हूं डेटा। एक मैंने ले लिया [email protected] फिर मैंने एक खाली छोड़ दिया नल। फिर उसके
बाद मैंने एक और ले लिया यहां पे अ लेट्स सपोज ए बी डी ई @ इस तरीके से मैंने कुछ डेटा ले लिया। अब जैसे ही मैं काउंट स्टार
करूंगा ना याद रखना बहुत इंपॉर्टेंट है। काउंट स्टार जो है वो काउंट करेगा। वन टू थ्री फोर फाइव। अब आपके दिमाग में आएगा
सर खाली है एक वैल्यू तो नल को तो काउंट करता ही नहीं है। नहीं जो काउंट स्टार है वो नल को भी काउंट करता है। याद रखना
सिर्फ काउंट स्टार ही है ऐसा जो नल को काउंट करता है। अदरवाइज जितने भी अदर फंक्शंस हैं चाहे मीन, मैक्स, एवरेज जो भी
करोगे वो आपके नल वैल्यू को इग्नोर कर देते हैं। लेकिन अकेला काउंट स्टार ऐसा है जो इसको काउंट करेगा। तो यानी 1 2 3 4 5
यानी इसका आंसर क्या आएगा? फाइव आएगा। जब आप काउंट करोगे ईमेल ध्यान रखना जब आप काउंट करोगे ईमेल उस केस में ये क्या
करेगा नल को जब आपने स्टार किया तो सबको दिखाएगा लेकिन अगर आप सिर्फ मेंशन कर दोगे ईमेल उस केस में ये नल को यहां पे काउंट
नहीं करेगा फिर 1 2 3 फोर आंसर आपका दे देगा और अगर आप काउंट डिस्टिंक्ट ईमेल करते हो तो नाम से ही पता लग रहा है
डिस्टिंक्ट मतलब सिर्फ और सिर्फ आपका यूनिक दिखाए तो ए बी सी ए बी सी एक बार दिखाएगा वन हो गया अकाउंट ए बी सी क्योंकि
ये डुप्लीकेट है ना तो इसको एक एक बार काउंट करेगा वन फिर आपका टू यहां पे आपका थ्री तो इस तरीके से आप समझ सकते हो कि
कैसे वर्क करता है काउंट इन केस अगर आपको अलग-अलग सिनेरियो में पूछ ले तो आप इस तरीके से आंसर जो है वो दे सकते हो। देन
हमारे पास आ गया अ रिपोर्ट कंटेन मिसिंग वैल्यूज़ अक्रॉस द प्राइमरी फोन अल्टरनेट फोन एंड इमरजेंसी। मतलब कई बार क्या होता
है कि हम लोग कोई फॉर्म वगैरह फिल करवाते हैं। उसमें मैंने प्राइमरी फोन नंबर ले लिया यूजर से। अल्टरनेट भी ले लिया।
इमरजेंसी नंबर भी ले लिया। ठीक है? और अगर लेट्स सपोज यूजर ने सिर्फ प्राइमरी नंबर दिए बाकी नहीं दिए तो मैं प्राइमरी नंबर
को शो करना चाहता हूं। लेट्स सपोज प्राइमरी नंबर नहीं दिया अल्टरनेट दिया है तो मैं उसको शो करना चाहता हूं। और अगर
लेट्स सपोज ये दोनों ही नहीं दिए तो मैं इमरजेंसी नंबर को शो करना चाहता हूं। और लेट्स सपोज अगर ये तीनों ही नहीं दिए तो
फिर मैं शो करना चाहता हूं कि भैया मेरे पास अवेलेबल नहीं है। इन चीजों में जब सेलेक्ट करते हैं तो एक बड़ा ही अच्छा
फंक्शन है हमारे पास कॉलेज। कॉलेज बेसिकली क्या करता है? ये देखो ध्यान से। सी ओ ए एल ई एस ईस कोलियाज़ भी बोल देते हैं।
प्रनंसिएशन थोड़ी अलग-अलग होती है। मेन यहां पे याद रखना कि लेट्स सपोज मेरे मेरे पास डेटा है 1 2 3 4 इस तरीके से एंप्लई
हैं। प्राइमरी फोन नंबर में मैंने ले लिया 9 8 7 अल्टरनेट में मैंने ले लिया नल। ठीक है? और इमरजेंसी में मैंने ले लिया नल।
दूसरे बंदे में मैंने यहां पे ले लिया नल और अल्टरनेट में मैंने ले लिया 9 84 5 कुछ भी। और यहां पे ले लिया नल। तीसरे बंदे
में मैंने यहां पे नल नल और यहां पे ले लिया 9 8 6 7 ठीक है और चौथे वाले में मैंने नल नल नल मतलब मेरे पास ना प्राइमरी
है ना अल्टरनेट है ना इमरजेंसी है अब मैं कॉलिस यूज़ करूंगा ना तो ये क्या करता है पहली नॉन नल वैल्यू को उठा के देगा पहली
नॉन नल का मतलब है जैसे ही मैं वन के ऊपर अप्लाई करूंगा कॉलियर्स प्राइमरी फोन नंबर ये देखेगा प्राइमरी फोन नंबर मेरे पास है
987 तो ये 987 पहले के कॉस्पोंडिंग दिखा देगा जैसे ही ये दूसरी रो पे आएगा वो देखेगा प्राइमरी में क्या है नल है कोई
बात नहीं ये उसके नेक्स्ट नेक्स्ट में जाएगा। नेक्स्ट में मिल गया 98 तो ये 98 वाला नंबर आपको दिखा देगा। थर्ड रो में
जाएगा नल है। छोड़ देगा नल है। छोड़ देगा। लेकिन नेक्स्ट में है तो आपको ये वाला नंबर दिखा देगा। मतलब नॉन नल वैल्यू को शो
करेगा। और जब आपकी तीनों ही नल हो तो उस केस में जो भी आप यहां पे चौथे में जो भी आप दोगे कोई भी कीवर्ड देना चाहते हो नॉट
अवेलेबल या नॉट प्रेजेंट तो वो फिर उस केस में वो आपका नॉट अवेलेबल आंसर देगा। तो ये हमेशा इस तरीके से आपको डेटा जो है वो फच
कर करके देता है। सो बेस्ड ऑन द यूज़ केस आप इसको भी यूज़ कर सकते हो। नेक्स्ट क्वेश्चन है हमारे पास विंडो फंक्शनंस के
ऊपर क्या कह रहा है? राइट अ क्वेरी टू फाइंड ईच यूज़र्स प्रीवियस लॉग इन डेट। मतलब यहां पे हमें फाइंड आउट करनी है
प्रीवियस लॉगिन डेट। तो देखो सबसे पहले क्वेश्चन को ध्यान से समझो क्योंकि एक बार में ये समझ नहीं आएगा। आपको थोड़ा सा इसको
डीप में समझना पड़ेगा। स्कीमा क्या कह रहा है? कि मेरे पास यूज़र्स हैं और उनके लॉगिन डेट्स हैं। ठीक है? मतलब यूजर वन है, यूजर
वन, यूजर वन ने इस टाइम पे लॉग इन किया, इस डेट को लॉग इन किया, इस डेट को लॉग इन किया। टू ने लॉग इन किया। अलग-अलग जब लॉग
इन करते जा रहे हैं, तब तक का डेटा मेरे पास यहां पे है। मुझे क्या करना है कि भैया उसने प्रीवियस लॉग इन कब दिया था? तो
भैया जो आज का लॉग इन है उसके साथ मुझे इससे पहले वाला लॉग इन जैसे कई बार क्या होता है कि करंट सैलरी मेरी है लेट्स सपोज
50,000 तो वो शो कर दे। और इससे पहले सैलरी मेरी क्या थी वो शो कर दे। तो लेट्स सपोज अभी 50 है। इससे पहले 40 थी तो मेरी
वो भी शो करे और करंट भी शो करे। अगर इस तरीके से डेटा को शो करना है तो हमें यहां पे यूज़ करना पड़ेगा किसको? लैग विंडो
फंक्शन को। तो देयर आर वेरियस विंडो फंक्शन जो हमने अभी-अभी किए। रो नंबर किया, हमने रैंक किया, डेंस रैंक किया।
ऐसे ही हमारे पास एक आता है लैग और एक आता है लीड। लैग जो है वो पिछले वाले डेटा के ऊपर काम करता है। लीड जो है वो अगले वाले
फ्यूचरिस्टिक डेटा के काम करता है। ठीक है? अब यहां पे सबसे पहले ध्यान से देखना। क्या कर रहे हैं हम? सेलेक्ट यूजर
अंडरस्कोर आईडी जो हमारी यूजर अंडरस्कोर आईडी तो है ही। देन लॉग इन अंडरस्कोर डेट। ये लॉग इन अंडरस्कोर डेट हमारे पास दी हुई
है। ठीक है? लैग कॉमा हमने क्या किया? लैग लॉग इन डेट। अब हम क्या कर रहे हैं? लैग लॉग इन डेट। लेकिन अभी ये काम नहीं करेगा।
काम के लिए आपको सबसे पहले इसके ऊपर आना पड़ेगा। दैट इज ओवर पार्टीशन बाय। अब यहां पे कांसेप्ट आ गया जी पार्टीशन बाय। जब भी
विंडो फंक्शन हम लोग यूज़ करते हैं तो पार्टीशन बाय का कांसेप्ट यूज़ करते हैं। पार्टीशन बाय क्या करता है कि हर एक यूजर
का पार्टीशन बना देगा। क्योंकि हमने पार्टीशन बाय किसके थ्रू कर रहे हैं? यूजर आईडी। अब यहां पे कई बार स्टूडेंट के
दिमाग में आता है कि सर ग्रुप बाय तो सुना था कि ग्रुप बाय यूजर आईडी तो वो यूजर वन का ग्रुप बना देगा, यूजर टू का ग्रुप बना
देगा। बिल्कुल सही है जी ऑलरेडी कर चुके हैं। लेकिन जो ग्रुप बाय है ना वो रिड्यूस कर देता है रोड्स को। मतलब जितनी भी रोज़
है ना उनको रिड्यूस कर देता है। मतलब इनका एक ग्रुप बना देगा। लेकिन हमें इनको सेपरेटली काम करना है। सेपरेटली काम करने
के लिए मुझे पार्टीशन बाय यूजर आईडी करना पड़ेगा। तो यहां पे क्या करेगा? वन वन वन का अलग पार्टीशन कर देगा। टू वाला अलग और
थ्री वाला अलग। इस तरीके से आप ऐसे लगा लो कि ये एक पार्टीशन P1 है। ये एक पार्टीशन P2 है और ये पार्टीशन P3 है। इस तरीके से
तीन पार्टीशंस बना दी बेस्ड ऑन यूजर आईडी। उसके बाद हमने क्या किया? ऑर्डर बाय लॉग इन डेट। अब हमने क्या कर दिया? इंटरनली
ऑर्डर बाय कर दिया लॉग इन डेट के ऊपर। मतलब वन की जो है वो लॉग इन कब-कब था? 1 जुलाई को था, 2 जुलाई को था और 3 जुलाई को
था। तो हमने इसको जो है वो ऑर्डर बाय कर दिया लॉग इन डेट। और यहां पे जो ऑर्डर बाय है वो हम लोग करेंगे। बाय डिफॉल्ट जो है
वो यहां पे अगर मेंशन नहीं किया तो हम लोग जो है वो असेंडिंग ऑर्डर में। अदरवाइज हम लोग डिसेंडिंग ऑर्डर में भी इसको कर सकते
हैं। तो लेट्स सपोज मैंने यहां पे इसको कर दिया। तो ये पहला वाला डाटा दूसरा तीसरा ये तो ऑलरेडी जो है वो आई थिंक ऑर्डर बाय
है ही अदरवाइज नहीं होगा तो ये ऑर्डर बाय कर देगा उसको ठीक है ना उसको प्रॉपर ऑर्डर में शो कर देगा एज अब यहां पे हम देखो
क्या कर रहे हैं लैग लॉग इन अंडरस्कोर डेट ये पता है क्या करेगा जैसे वन है अब ये देखो ध्यान से देखना वन वाला है इसने इससे
पहले कब किया था इसने इससे पहले तो लॉग इन किया ही नहीं पहली बार लॉग इन कर रहा है तो यानी जो ये प्रीवियस रिकॉर्ड बनाएगा ना
प्रीवियस वाला जो ये बनाएगा यहां पे कि मेरा लॉग इन डेट लैग और इसका नाम रख देगा प्रीवियस लॉगिन। तो प्रीवियस लॉगिन वाले
में यहां पे नल डाल देगा। नल मतलब इससे पहले इसका कोई लॉगिन नहीं है। नेक्स्ट 2 तारीख। 2 तारीख से पहले लॉग इन कब किया
था? 1 तारीख को किया था। तो यहां पे इसके कॉस्पोंडिंग 1 जुलाई आ जाएगा। मतलब एक साथ आ जाएगा। फिर तीन को लॉग इन कब किया था?
इससे पहले 2 जुलाई को किया था। तो इस तरीके से देखो करंट लॉगिन ये है प्रीवियस ये है। करंट ये है प्रीवियस ये है। करंट
ये है प्रीवियस ये है। सेम इसी तरीके से करंट ये है। यूजर आईडी टू का प्रीवियस जो है वो नल है। करंट ये है तो प्रीवियस कब
था? ये 1 जुलाई को था। ठीक है? करंट इसका ये है तो प्रीवियस कब है? जी नल है। इस तरीके से पूरा रिकॉर्ड मेरे को पैरेलल में
क्रिएट करके दे देगा। और इसका नाम ये क्या रखेगा? प्रीवियस अंडरs लॉग इन क्योंकि जो भी ये लैग इंटरनली काम कर रहा है वो इसको
हमने एक एलआई बना के यहां पे एक नया कॉलम ऐड कर दिया। इस तरीके से आपका जो है वो काम करता है विंडो फंक्शन। थोड़ा सा भी
अगर आपको डाउट लगता है एक बार दोबारा से फिर देखना एग्जीक्यूट करके देखना या फिर विंडो फंक्शन के ऊपर मैंने ऑलरेडी वीडियोस
बनाई हुई है। उसका लिंक जो है वो मैं आई सेक्शन में डाल देता हूं। थोड़ा और डिटेल में भी इसको देख सकते हो। देन हमारे पास आ
गया अ सैलरी रिपोर्ट मस्ट क्लासिफाई एंप्लई इनू लोअर मीडियम एंड हाई। देखो कई बार क्या होता है कि जैसे हम नॉर्मल C++
वगैरह में केस वगैरह यूज़ करते हैं ना स्विच वगैरह यूज़ करते हैं। ऐसे ही अगर आपको इस तरीके से स्विच केस बनाना पड़े
एसक्यूएल के अंदर तो हम कैसे बनाते हैं? सिंपल केस व्हेन सैलरी ग्रेटर दैन दिस तो मैंने प्रिंट करा दूंगा हाई। व्हेन सैलरी
ग्रेटर दैन दिस देन आई विल प्रिंट दिस। एल्स लो। तो यहां पे मैं उसको जो है वो इस तरीके से एंड कर सकता हूं। बस याद रखना
केस को यहां से स्टार्ट करते हैं तो केस को एंड करना जरूरी है और उसके बाद हम यहां पे जो भी एलआई क्रिएट करेंगे तो बैंड बना
देगा कि जिन लोगों की सैलरी इससे ज्यादा है उसके नाम से टैग दे देगा हाई जिनकी सैलरी जो है वो इससे ज्यादा और इससे कम है
उनको नाम दे देगा मीडियम जिनकी सैलरी 50 से कम है उनके सामने एक टैग बना देगा लो सैलरी वाले अगर मैं इसी चीज को ओरेकल में
करना चाहता हूं तो डी कोड यूज़ करते हैं माय सीक्वल में इफ यूज़ करते हैं सीक्वल सर्वर में आई एफएफ यूज़ करते हैं तो ये
छोटे-छोटे पॉइंट जो है वो आपको अगर पूछ लें इंटरव्यू में आपको पता होने चाहिए। देन अ परसेंटेज कैलकुलेशन डिवाइड्स द
अचीव्ड सेल बाय द टारगेट सेल। मतलब अगर मुझे परसेंटेज कैलकुलेट करनी है तो जो भी मेरी यहां पे अचीव्ड सेल है उसको मैं
डिवाइड करता हूं किससे? टारगेट सेल से। ठीक है? तो मेरे को पता लग जाएगा मेरी अचीवमेंट कितनी हुई। बट होता क्या है कि
कई बार अब आपको इंटरव्यू में बोल दें कि कई बार तो हो सकता है मेरे टारगेट जीरो हैं। तो अगर आप मेरी टारगेट सेल लेट्स
सपोज 70 है और मेरी अचीव्ड 10 है तो मैं डिवाइड करके वैल्यू निकाल सकता हूं। ठीक है? तो मेरी यहां पे वैल्यू निकल के आ
जाएगी। अगर मेरी लेट्स सपोज टार अचीव्ड जो है वो 70 है और मेरी जो टारगेट सेल है वो है ज़ीरो। तो यहां तो भैया डिवाइड बाय ज़ीरो
का एरर आ जाएगा। क्योंकि आप अगर किसी भी चीज को ज़ीरो से डिवाइड करते हो तो वो तो ऑब्वियसली इनफाइनाइट वैल्यू है। तो डिवाइड
बाय ज़ीरो का एरर क्योंकि टारगेट सेल जरूरी थोड़ी ना कि हमेशा पॉजिटिव नंबर होगा। कोई हो सकता है ये ज़ीरो वैल्यू भी हो जाए। तो
इस केस में यहां पे बड़ा इंपॉर्टेंट कांसेप्ट है नल इफ का। नल इफ पता है क्या करेगा कि अगर लेट्स सपोज़ टारगेट सेल की
वैल्यू है 10, 20, 30, तो वो उसी को लेके चलेगा। लेकिन अगर टारगेट सेल की वैल्यू हो गई लेट्स सपोज़ ज़ीरो। अगर वो वैल्यू होगी
ज़ीरो तो यहां पे एरर आ जाएगा। तो ये ज़ीरो को पता है क्या करेगा? कन्वर्ट कर देगा नल में। मतलब नल इफ का मतलब है कि जैसे ही
यहां पे ज़ीरो दिखा, इसने ज़ीरो को देखते ही इसको नल में कन्वर्ट कर देना है। और अगर आप किसी भी नंबर को नल से डिवाइड करते हो
तो एरर नहीं आएगा। ओवरऑल आंसर आपका नल हो जाएगा। तो यहां पे एरर से आप लोग बच गए। इस टाइप के क्वेश्चंस बहुत ज्यादा पॉपुलर
होते हैं। इंटरव्यूज़ में अच्छे से नोट कर लेना। और फाइनली हमारे पास जो है वो इसका अगेन स्नैपशॉट वगैरह ले लेना। ठीक है ना?
इसीलिए मैं साइड पे हो जाता हूं। देन राइट अ क्वेरी टू डिलीट द डुप्लीकेट रिकॉर्ड्स। बड़ाेंट है जी। अगर डुप्लीकेट डेटा है और
उसको डिलीट करना है व्हाइल कीपिंग द न्यूएस्ट रिकॉर्ड फॉर ईच ईमेल। देखो ध्यान से पहले क्वेश्चन को समझो। मेरे यहां पे
कस्टमर्स हैं और उनका नेम है और उनकी ईमेल आईडी। जैसे देखो निखिल की यहां पे निखिल है और एक और आईडी है सेम। मुझे क्या करना
है? अगर लेट्स सपोज डुप्लीकेट है यहां पे। निखिल की दो-तीन बार चार बार लिखी हुई है ईमेल आईडी। तो मुझे एक को रखना है और
बाकियों को डिलीट कर देना है। लेकिन रखना किसको है? जो लेटेस्ट है जैसे देखो यहां पे निखिल ने ये अपडेट की थी या क्रिएट की
थी 121 को और ये फिर उसने 215 को दोबारा से की तो यानी मुझे लेटेस्ट वाली रखनी है पुरानी वाली डिलीट करनी है तो अगेन इसके
लिए भी हमारा कौन सा यूज होगा यहां पे विंडो फंक्शन यूज़ होगा और विंडो फंक्शन को यूज़ देखो कैसे कर रहे हैं ध्यान से देखना
सेलेक्ट कस्टमर आईडी कॉमा रो नंबर हम लोग देंगे ओवर पार्टीशन बाय सबसे पहले स्टार्ट करो पार्टीशन बाय से पार्टीशन बाय ईमेल
हमने क्या कर दिया पार्टीशन बाय कर दिया ईमेल यानी निखिल वाला एक अलग हो गया और सारा वाला अलग हो गया। देव वाला अलग हो
गया। सबसे पहले तो ध्यान रखो जैसे ही पार्टीशन बाय ईमेल करोगे इस तरीके से आपके पार्टीशंस बन गए। अगर मल्टीपल होते तो वो
सारे एक पार्टीशन में आ जाते। उसके बाद देखो ध्यान से देखो। बड़ा इंपॉर्टेंट लॉजिक है। ऑर्डर बाय क्रिएटेड। मतलब मैंने ऑर्डर
बाय कर दिया क्रिएटेड से। ऑर्डर बाय कर दिया क्रिएटेड के हिसाब से। तो निखिल जो है वह अभी बना अब। लेकिन हमने क्रिएटेड
बाय ऑर्डर और डिसेंडिंग। मतलब निखिल ने दो बार बनाई। एक तो 121 को और एक बनाई 215 को। लेकिन इनमें से जो लेटेस्ट है वो है
215। तो हमने हाईएस्ट टू लोएस्ट करना है डिसेंडिंग में। तो 215 वाली यहां पे आ गई और जो पहले बनाई थी 12 एक वाली वो नीचे
चली गई। सेम बाकियों में भी ऐसे ही करेगा अगर मल्टीपल होती है तो। ठीक है? देन उसके बाद हमने क्या किया? यहां पे इनको रो नंबर
दे दिया। बड़ा इंपॉर्टेंट है जी। रो नंबर। मैंने इसको रो नंबर दे दिया वन। इसको रो नंबर दे दिया यहां पे टू। ये जो है वो
सिमिलरली वैसे ही हर एक पार्टीशन में रो नंबर वन, रो नंबर वन। क्योंकि यहां तो वैल्यूस ही एक-एक है। तो आप इसको तो चाहे
ना ही लो। मेन इसी को देखो ध्यान से। तो यहां पे रो नंबर वन, रो नंबर टू। लेट्स सपोज एक और निखिल भी होता और वो उसने
लेट्स सपोज बनाई होती आपकी 11 एक को। ठीक है? तो उसको रो नंबर थ्री दे देता। एग्जांपल के तौर पे मैं तीन रोज़ ले लेता
हूं। ठीक है? देन ये फ्रॉम कस्टमर रिकॉर्ड ये बना दिया। अब उसके बाद हमने यहां पे अगर आप ध्यान से देखो विद यूज़ किया है।
विद क्या होता है? बेसिकली कॉमन टेबल एक्सप्रेशन। मतलब टेंपरेरी इस रिजल्ट को सेव कर देगा। मैंने टेंपरेरी क्या रिजल्ट
सेव कर दिया? एक तो कस्टमर आईडी कस्टमर आईडी क्या है निखिल की 301 303 और लेट्स सपोज अगर मैं 305 ले लेता हूं और वो भी
मेरी निखिल है और वो उसने 110 एक को बनाई थी तो इस तरीके से 305 जो भी वैल्यूज है मैं यहां पे निखिल और उसके साथ-साथ रो
नंबर दो चीजों को सेव कर लेगा एक तो कस्टमर आईडी ठीक है और एक उसके साथ रो नंबर रो नंबर कौन से है जी 1 2 3 ठीक है
तो ये मैंने सेव करवा लिया देखो लॉजिक कितना प्यारा है हम अब क्या करेंगे हम लोग इन दो रोस को डिलीट करने की कोशिश करेंगे।
सिर्फ पहली वाली जो रो है उसको कीप करेंगे। उसके लिए हमने देखो क्या किया? डिलीट फ्रॉम कस्टमर अंडरस्कोर रिकॉर्ड जो
भी मेरा ये टेबल है उसमें से वेयर कस्टमर आईडी इन सेलेक्ट कस्टमर आईडी फ्रॉम द रैंक्ड। मतलब ये जो हमने बनाया ना ये वाला
जो टेबल है टेंपरेरी इसके अंदर मैंने इसका नाम दे दिया रैंक। अब इसमें हम लोग क्या करेंगे? जहां पे भी रो नंबर ग्रेटर दैन वन
है। तो देखो रो नंबर ग्रेटर दैन वन कहां है? ये टू एंड थ्री। यानी इसको डिलीट करेगा और इसको डिलीट करेगा। सिर्फ एक वाली
को रख लेगा। एक वाली पता है कौन सी है? यह वो है जो निखिल ने लेटेस्ट अपडेट किया था और उस तरीके से आपका डेटा बड़ा इंपॉर्टेंट
लॉजिक है क्योंकि इंटरनली ये बहुत बड़ा कांसेप्ट है। लेकिन अगर एक-एक करके आप इसको ब्रेकडाउन करके समझोगे तो आपको बहुत
अच्छे से समझ में आएगा। तो एक बार प्लीज इनको सों को अच्छे से नोट कर लेना और एग्जीक्यूट करके देखना जरूर। क्योंकि जब
आप एग्जीक्यूट करके देखोगे तब आपको ज्यादा हैंड्स ऑन प्रैक्टिस करोगे तो ज्यादा चीजों की समझ आएगी। बाकी मैंने जितने भी
कांसेप्ट है एसक्यूएल के जितने भी सारे के सारे यहां पे कवर अप करने की कोशिश कर दी है। जी इन केस कोई छोटा-मोटा रह जाता है
तो वो हम लोग देख लेंगे। आप कमेंट सेक्शन में मेरे को बता देना। बट गाइस प्लीज वीडियो को लाइक कर देना। चैनल को
सब्सक्राइब कर देना। अगर अभी तक आपने नहीं किया और अगर कर भी दिया है तो शेयर कर दो। भाई इनके पीछे बहुत मेहनत है। एक-एक
क्वेश्चन को बनाने में बहुत दम लगता है। तो भैया ज्यादा से ज्यादा शेयर जरूर कर देना।
[घंटी की आवाज़]
तीनों विंडो फंक्शन हैं, लेकिन डुप्लीकेट वैल्यू को हैंडल करने के तरीके में अंतर है। ROW_NUMBER() हर पंक्ति को एक अद्वितीय क्रमांक देता है, भले ही वैल्यू डुप्लीकेट हो। RANK() डुप्लीकेट वैल्यू को समान रैंक देता है, लेकिन अगली रैंक को स्किप कर देता है (जैसे 1, 2, 2, 4)। DENSE_RANK() भी डुप्लीकेट को समान रैंक देता है, लेकिन रैंक को स्किप नहीं करता (जैसे 1, 2, 2, 3)। उदाहरण के लिए, टॉप 3 सैलरी निकालने के लिए DENSE_RANK() उपयुक्त है, जबकि अद्वितीय पंक्तियों की पहचान के लिए ROW_NUMBER() बेहतर है।
इस एरर से बचने के लिए NULLIF() फंक्शन का उपयोग करें। NULLIF(Target, 0) अगर टार्गेट 0 है तो उसे NULL में बदल देता है। चूंकि किसी भी संख्या को NULL से डिवाइड करने पर NULL ही मिलता है, एरर नहीं आती। उदाहरण के लिए, SELECT Achieved / NULLIF(Target, 0) AS Percentage FROM Sales; लिखकर आप बिना एरर के परसेंटेज निकाल सकते हैं।
TRUNCATE एक DDL कमांड है जो टेबल के सभी रिकॉर्ड्स को एक साथ और तेजी से हटा देता है, लेकिन डेटा रिकवर नहीं किया जा सकता। दूसरी ओर, DELETE एक DML कमांड है जो रिकॉर्ड्स को रो-बाय-रो हटाता है और इसे ROLLBACK से रिकवर किया जा सकता है, लेकिन यह धीमा है। अगर आप टेबल का स्ट्रक्चर रखते हुए सारा डेटा तेजी से हटाना चाहते हैं, तो TRUNCATE उपयोग करें। अगर आपको कुछ रिकॉर्ड्स हटाने हैं या रिकवरी की आवश्यकता है, तो DELETE का उपयोग करें।
सेल्फ जॉइन एक ही टेबल को दो अलग-अलग एलियास देकर जोड़ता है, जैसे कि वह दो अलग-अलग टेबल हों। उदाहरण के लिए, उन कर्मचारियों को खोजने के लिए जिनका वेतन उनके मैनेजर से अधिक है, SELECT E.Employee_Name, E.Salary FROM Employee E JOIN Employee M ON E.Manager_ID = M.Employee_ID WHERE E.Salary > M.Salary; क्वेरी का उपयोग करें। यहां, E कर्मचारी को और M मैनेजर को दर्शाता है।
COUNT(*) सभी पंक्तियों को गिनता है, जिसमें NULL वैल्यू वाली पंक्तियां भी शामिल हैं। COUNT(Email) केवल उन पंक्तियों को गिनता है जहां Email कॉलम में NULL नहीं है, यानी यह NULL वैल्यू को इग्नोर करता है। COUNT(DISTINCT Email) केवल अद्वितीय (डुप्लीकेट न हों) और नॉन-NULL ईमेल को गिनता है। यह डेटा क्लीनिंग और एनालिसिस के लिए महत्वपूर्ण है।
डुप्लीकेट रिकॉर्ड्स को हटाने के लिए, आप ROW_NUMBER() विंडो फंक्शन के साथ CTE (Common Table Expression) का उपयोग कर सकते हैं। WITH Ranked_Customers AS (SELECT Customer_ID, ROW_NUMBER() OVER (PARTITION BY Email ORDER BY Created_At DESC) AS rn FROM Customers) DELETE FROM Customers WHERE Customer_ID IN (SELECT Customer_ID FROM Ranked_Customers WHERE rn > 1); यह क्वेरी प्रत्येक ईमेल के लिए नवीनतम रिकॉर्ड को रखती है और बाकी को हटा देती है।
COALESCE() फंक्शन दिए गए आर्गुमेंट्स की लिस्ट में से पहली नॉन-NULL वैल्यू को रिटर्न करता है। इसका उपयोग तब किया जाता है जब आपके पास कई फ़ोन नंबर या पते जैसे कई वैकल्पिक मान हों और आप पहला उपलब्ध मान दिखाना चाहते हैं। उदाहरण के लिए, SELECT COALESCE(Primary_Phone, Alternate_Phone, Emergency_Phone, 'Not Available') AS Contact_Number FROM Customer; से पहला गैर-NULL फ़ोन नंबर मिलेगा, और यदि सभी NULL हैं, तो 'Not Available' दिखेगा।
Keep this summary
Save it to LunaNotes and it becomes a real note in your library — editable, searchable, and ready to turn into flashcards or a diagram. Free to start.
Save to LunaNotesOr summarise for another video.
This summary and transcript were automatically generated using AI with the Free YouTube transcript summary tool by LunaNotes.
Related summaries
MySQL Tutorial: डेटाबेस मैनेजमेंट से लेकर SQL कमांड्स तक
इस वीडियो में SQL डेटाबेस मैनेजमेंट सिस्टम का परिचय और उपयोग, MySQL में डेटाबेस और टेबल बनाना, डाटा इन्सर्ट, अपडेट, सलेक्ट, और डिलीट कमांड्स को विस्तार से समझाया गया है। साथ ही SQL के विभिन्न कांन्स्ट्रेंट्स और जॉइन्स का प्रायोगिक उदाहरण के साथ वर्णन किया गया है।
HTML बेसिक्स से प्रोफेशनल तक: पूरी वेब डेवलपमेंट गाइड
यह विस्तृत वीडियो ट्यूटोरियल HTML की पूरी समझ देता है, जो शुरुआत से लेकर एडवांस लेवल तक आपकी वेब डेवलपमेंट स्किल्स को मजबूत करता है। इसमें HTML टैग्स, एट्रिब्यूट्स, लेआउट, फॉर्म्स, टेबल्स, और SEO फ्रेंडली सिमेंटिक टैग्स सहित महत्वपूर्ण कॉन्सेप्ट्स को आसान भाषा में समझाया गया है।
उत्पादन योजना और सुविधा निर्णय | PPC, क्षमता और लेआउट रणनीतियाँ
यह वीडियो 'प्रोडक्शन प्लानिंग एंड फैसिलिटी डिसीजन' पर 9वां लेक्चर है, जो Cocoar परीक्षा की तकनीकी श्रृंखला का हिस्सा है। इसमें PPC (रूटिंग, लोडिंग, शेड्यूलिंग, डिस्पैचिंग, एक्सपिडिटिंग), एग्रीगेट प्लानिंग (लेवल, चेज़, मिक्स्ड रणनीतियाँ), क्षमता मापन (डिज़ाइन, प्रभावी, वास्तविक), बॉटलनेक विश्लेषण, और सुविधा स्थान चयन (फैक्टर रेटिंग, ग्रैविटी केंद्र, ब्रेक-ईवन) को कवर किया गया है। वीडियो में विस्तृत उदाहरण और MCQ अभ्यास भी शामिल हैं।
Complete Image Processing Unit 5: Data Compression to OCR Techniques
इस वीडियो में हमने यूनिट 5 के सभी प्रमुख टॉपिक्स जैसे डेटा कंप्रेशन, हाफमैन कोडिंग, रन लेंथ कोडिंग, शिफ्ट कोड, अर्थमैटिक कोडिंग, JPEG & MPEG स्टैंडर्ड, बाउंड्री रिप्रेजेंटेशन, डिस्क्रिप्टर्स, और ऑब्जेक्ट रिकॉग्निशन को विस्तार से समझा। गणितीय एल्गोरिद्म और प्रैक्टिकल उदाहरणों के साथ ये वीडियो आपके ईमेज प्रोसेसिंग कॉन्सेप्ट्स को मजबूत करेगा।
EBAY क्रैश कोर्स: ड्रॉपशिपिंग, हंटिंग, लिस्टिंग और अकाउंट सेटअप की पूरी गाइड
यह एक व्यापक ईबे क्रैश कोर्स है जो ड्रॉपशिपिंग, प्रोडक्ट हंटिंग, प्रोफिटेबल लिस्टिंग और अकाउंट क्रिएशन को शुरू से अंत तक, प्रैक्टिकल प्रदर्शन के साथ सिखाता है। इस वीडियो में आप जानेंगे कि कैसे डॉलर्स में कमाई शुरू करें, फेक गुरुओं से बचें, और एक लॉन्ग-टर्म ऑनलाइन स्किल और बिजनेस विकसित करें।
Most viewed summaries
A Comprehensive Guide to Using Stable Diffusion Forge UI
Explore the Stable Diffusion Forge UI, customizable settings, models, and more to enhance your image generation experience.
Kolonyalismo at Imperyalismo: Ang Kasaysayan ng Pagsakop sa Pilipinas
Tuklasin ang kasaysayan ng kolonyalismo at imperyalismo sa Pilipinas sa pamamagitan ni Ferdinand Magellan.
Mastering Inpainting with Stable Diffusion: Fix Mistakes and Enhance Your Images
Learn to fix mistakes and enhance images with Stable Diffusion's inpainting features effectively.
Pamamaraan at Patakarang Kolonyal ng mga Espanyol sa Pilipinas
Tuklasin ang mga pamamaraan at patakaran ng mga Espanyol sa Pilipinas, at ang epekto nito sa mga Pilipino.
How to Install and Configure Forge: A New Stable Diffusion Web UI
Learn to install and configure the new Forge web UI for Stable Diffusion, with tips on models and settings.
Found this summary useful?
Take it with you. One click puts it in your own LunaNotes library.
Save to LunaNotes