SQL Interview Mastery: From Basics to Advanced Queries
This comprehensive guide covers the most critical SQL interview questions, ranging from fundamental queries to complex scenarios. Each topic is explained with real-world examples and clear logic to ensure you can confidently answer any SQL question in your interview.
Core SQL Command Categories
- DDL (Data Definition Language): CREATE, ALTER, DROP, TRUNCATE (manages table structure)
- DML (Data Manipulation Language): SELECT, INSERT, UPDATE, DELETE (manages database content)
- DCL (Data Control Language): GRANT, REVOKE (manages user permissions)
- TCL (Transactional Control Language): COMMIT, ROLLBACK, SAVEPOINT (manages transactions)
Key Query Execution Order
Understanding the order of execution is crucial for writing correct SQL queries.
- FROM: Identifies the table(s)
- JOIN: Combines tables
- WHERE: Filters rows based on conditions
- GROUP BY: Groups rows sharing a property
- HAVING: Filters groups
- SELECT: Chooses columns to display
- ORDER BY: Sorts the final result
- LIMIT: Restricts the number of rows returned
Essential Single-Table Queries
Question 1: Filtering and Sorting
- Query: Display all Engineering employees, sorted by salary from highest to lowest.
- Solution:
SELECT * FROM employee WHERE department = 'Engineering' ORDER BY salary DESC; - Key Concepts:
WHEREclause for filtering andORDER BY ... DESCfor descending sort. OmittingASCorDESCdefaults to ascending.
Question 2: Aggregation with GROUP BY
- Query: Find the number of employees in each department.
- Solution:
SELECT department, COUNT(*) AS employee_count FROM employee GROUP BY department; - Key Concepts:
GROUP BYgroups rows, and aggregate functions likeCOUNTsummarize the data in each group.AScreates an alias for the column name.
Question 3: Filtering Groups with HAVING
- Variation: Find departments with more than 2 employees.
- Solution:
SELECT department, COUNT(*) AS employee_count FROM employee GROUP BY department HAVING COUNT(*) > 2; - Key Concepts:
HAVINGis used to filter groups, whileWHEREfilters rows before grouping.
Question 4: Finding Second Highest Salary
- Query: Find the second highest distinct salary.
- Solution:
SELECT MAX(salary) AS second_highest_salary FROM employee WHERE salary < (SELECT MAX(salary) FROM employee); - Key Concepts: This uses a subquery to find the max salary, then finds the max salary that is less than that value. The
DISTINCTkeyword can ensure unique values.
Question 5: Subqueries with Aggregate Functions
- Query: Find employees earning more than the company’s average salary.
- Solution:
SELECT * FROM employee WHERE salary > (SELECT AVG(salary) FROM employee); - Key Concepts: A subquery calculates the average salary, and the main query filters rows based on that value.
Question 6: Max Salary per Department
- Query: Find the highest salary in each department.
- Solution:
SELECT department, MAX(salary) FROM employee GROUP BY department; - Key Concepts:
GROUP BYcombined withMAXfinds the highest value for each group. Any column inSELECTmust either be inGROUP BYor be an aggregate function.
Advanced Joins and Self-Joins
Question 7: Self-Join to Compare Employee and Manager Salaries
- Query: Find employees whose salary is higher than their manager’s salary.
- Solution:
SELECT e.employee_name, e.salary FROM employee e JOIN employee m ON e.manager_id = m.employee_id WHERE e.salary > m.salary; - Key Concepts: A self-join treats one table as two separate entities using aliases (e for employee, m for manager). This allows comparing different rows within the same table.
Question 8: INNER JOIN for Displaying Order and Customer Data
- Query: Display each order with its customer name.
- Solution:
SELECT o.order_id, c.customer_name FROM orders o JOIN customers c ON o.customer_id = c.customer_id; - Key Concepts: An INNER JOIN returns only rows where there is a match in both tables based on the common column (
customer_id).
Question 9: LEFT JOIN to Find Customers with No Orders
- Query: Find customers who have never placed an order.
- Solution:
SELECT c.customer_name FROM customers c LEFT JOIN orders o ON c.customer_id = o.customer_id WHERE o.order_id IS NULL; - Key Concepts: A LEFT JOIN will keep all rows from the left table (customers).
WHERE o.order_id IS NULLidentifies customers with no matching records in the orders table.
Question 10: Customers with More Than One Order
- Query: Find customers who placed more than one order.
- Solution:
SELECT c.customer_id, c.customer_name FROM customers c JOIN orders o ON c.customer_id = o.customer_id GROUP BY c.customer_id, c.customer_name HAVING COUNT(*) > 1; - Key Concepts: A
JOINcombines the tables,GROUP BYcreates groups per customer, andHAVINGfilters for those with a count greater than one.
Question 11: Finding the Highest Spender
- Query: Find the customer who spent the most on delivered orders.
- Solution:
SELECT c.customer_name, SUM(o.amount) AS total_spent FROM customers 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; - Key Concepts: Combines filtering (
WHERE), aggregation (SUM), grouping, sorting (ORDER BY ... DESC), and limiting the output (LIMIT 1).
Data Control & Administrative Commands
Question 12: Granting SELECT-Only Permission
- Scenario: A new intern should only be able to view the employee table, not modify it.
- Solution:
GRANT SELECT ON employee TO user_name; - Key Concepts: DCL commands.
GRANTgives permissions,REVOKEtakes them away. Permissions can be forSELECT,INSERT,UPDATE,DELETE.
Question 13: Understanding Query Execution Order
- Problem: An alias created in the
SELECTlist cannot be referenced in theWHEREclause. - Explanation: The
FROMandWHEREclauses are executed before theSELECTclause. The alias doesn't exist yet when theWHEREclause is evaluated.
Advanced SQL Functions and Scenarios
Question 14: RANK vs. DENSE_RANK vs. ROW_NUMBER
- Scenario: A query with duplicate salaries results in different ranking behaviors.
- Explanation:
ROW_NUMBER(): Assigns a unique sequential number to each row (1, 2, 3, 4).RANK(): Assigns the same rank to duplicate values but skips the next rank (1, 2, 2, 4).DENSE_RANK(): Assigns the same rank to duplicate values without skipping (1, 2, 2, 3).
Question 15: COUNT(), COUNT(column), and COUNT(DISTINCT)
- Scenario: A table with duplicate and NULL values.
- Explanation:
COUNT(*): Counts all rows including NULLs.COUNT(column_name): Counts non-NULL values in that column.COUNT(DISTINCT column_name): Counts unique, non-NULL values.
Question 16: COALESCE for Prioritizing Non-NULL Values
- Scenario: A report needs to show the first available phone number: Primary, then Alternate, then Emergency, else "Not Available".
- Solution:
SELECT COALESCE(primary_phone, alternate_phone, emergency_phone, 'Not Available') AS phone_to_use FROM contacts; - Key Concepts:
COALESCEreturns the first non-NULL value from a list of arguments.
Question 17: CASE Statement for Conditional Logic
- Query: Classify employees into 'Low', 'Medium', and 'High' salary groups.
- Solution:
SELECT employee_name, salary, CASE WHEN salary > 80 THEN 'High' WHEN salary > 50 THEN 'Medium' ELSE 'Low' END AS salary_band FROM employee; - Key Concepts: The
CASEexpression allows conditional logic, similar to if-else statements.
Question 18: Handling Division by Zero with NULLIF
- Scenario: Calculate percentage achievement (achieved/target) while avoiding division by zero errors.
- Solution:
SELECT achieved / NULLIF(target, 0) AS percentage FROM sales; - Key Concepts:
NULLIFreturnsNULLif the two expressions are equal, turning a division by zero into aNULLresult instead of an error.
Advanced Window Functions and Data Cleaning
Question 19: LAG() to Find Previous Login Date
- Query: Find each user's previous login date.
- Solution:
SELECT user_id, login_date, LAG(login_date) OVER (PARTITION BY user_id ORDER BY login_date) AS previous_login FROM logins; - Key Concepts:
LAG()is a window function that accesses data from a previous row within the same result set.PARTITION BYdivides the rows into groups (per user), andORDER BYdefines the order within each partition.
Question 20: Deleting Duplicate Records
- Query: Delete duplicate customer records while keeping the newest one for each email.
- Solution:
WITH ranked_customers AS ( SELECT customer_id, ROW_NUMBER() OVER (PARTITION BY email ORDER BY created_at DESC) AS row_num FROM customers ) DELETE FROM customers WHERE customer_id IN (SELECT customer_id FROM ranked_customers WHERE row_num > 1); - Key Concepts: A CTE (Common Table Expression) is used to create a temporary result set. The
ROW_NUMBER()window function assigns a rank (1 for the newest record per email). TheDELETEstatement then removes all rows with a rank greater than 1.
Conclusion
Mastering these 20+ must-know SQL queries and concepts will give you a significant advantage in any interview. Practice each example, understand the underlying logic rather than memorizing, and you will be well-prepared to tackle any question that comes your way. Good luck!
डिअ स्टूडेंट्स वेलकम टू गेट स्मेशर्स। एक बहुत ही फेमस कोट है। डाटा इज द न्यू ऑयल एंड एआई इज़ द न्यू रिफाइनरी। मतलब अगर आज
के टाइम पे किसी भी इंडस्ट्री को आगे बढ़ना है तो उसको ऑब्वियसली डेटा को तो इंपॉर्टेंट है ही। अगर हम एआई को चलाना
चाहते हैं। एआई अगर मेरी रिफाइनरी है तो उसको चलाने के लिए मेरे को जो फ्यूल चाहिए वो क्या है? डेटा है। और किसी भी
इंडस्ट्री में सबसे इंपॉर्टेंट चीज क्या होती है? डेटा। और इसी डेटा को अगर मुझे मैनपुलेट करना है, मतलब मुझे कुछ अपडेट
करना है, डिलीशन करना है, इंसर्शन करना है, कुछ भी ऑपरेशन परफॉर्म करना है तो मुझे क्या चाहिए? एक लैंग्वेज चाहिए। और
स्ट्रक्चर डेटा के केस में, रिलेशनल डेटा के केस में हमारे पास लैंग्वेज कौन सी है? एस क्यूएल। और जब भी आप किसी भी इंटरव्यू
में जा रहे हो, चाहे वो सॉफ्टवेयर से रिलेटेड है, सिस्टम डिज़ाइन से रिलेटेड है, चाहे वो नेटवर्किंग से, ऑपरेटिंग सिस्टम
से और सबसे इंपॉर्टेंट अगर डेटा से रिलेटेड है, मतलब डेटा एनालिटिक्स हो गया, बिज़नेस एनालिटिक्स हो गया। जहां पे भी
डेटा की बात की जाएगी वहां पे सीक्वल की बात ना हो ऐसा हो ही नहीं सकता। तो इसीलिए आज की इस वीडियो में मैं आपको जितने भी
पॉसिबल क्वेश्चंस हैं इंटरव्यू के वो सारे के सारे एक्सप्लेन करने जा रहा हूं। और विद क्वेरीज मतलब इंपॉर्टेंट क्वेरीज भी
एक्सप्लेन करने जा रहा हूं। ऑलदो सीक्वल की कहानी स्टार्ट किससे होती है? जैसे हर एक कहानी एक स्टोरी का स्टार्ट होता है ना
कि एक बार एक राजा था, एक बार की बात है, एक राजा था। ऐसे ही हमारी जो स्टोरी है सीक्वल की वो स्टार्ट होती है किससे?
डीडीएल, डीएमएल, डीसीएल और इसके अलावा ट्रांजैक्शनल क्वेरी लैंग्वेज टी क्यूएल। तो यहां पे अगर बात की जाए तो मैं वो
क्वेरीज आपको यहां पे नहीं बता रहा क्योंकि वो चीज आपको पता होगा। बेसिक तो आपको पता ही है भैया क्रिएट टेबल अपडेट
करना है। टेबल को डिलीट करना है टेबल में से कुछ। ठीक है? ड्रॉप करना है टेबल को। ट्रंकेट करना है, सेलेक्ट करना है, डेटा
ग्रांट करना है, रिवोक करना है। ये सारी चीजें कहीं ना कहीं एक बेसिक कमांड्स आ जाती है। लेकिन मैं स्टार्ट कर रहा हूं
डायरेक्टली विद द क्वेरीज। तो यहां पे याद रखना जब भी क्वेरीज के ऊपर क्वेश्चन आएगा हमेशा स्टार्ट किया जाएगा आपको एक टेबल से
कि भैया एक टेबल दिया हुआ है और उस टेबल के ऊपर आपको कुछ क्वेरीज लगानी है। डेटा निकालना है। तो इस इस टाइप के क्वेश्चन
आपके सबसे ज्यादा इंपॉर्टेंट होते हैं। और अगर आपने ये कर लिए तो इसके बाद तो कुछ है ही नहीं। ऑलदो मैं बोल रहा हूं कि बेसिक
जो है डीडीएल, डीएमएल, डीसीएल ये सारी कमांड्स भी करनी है। इसका लिंक मैं ऊपर आई सेक्शन में डाल देता हूं। आप एक बेसिक
ओवरव्यू कर लेना। ऑलदो मैं ऐसा करूंगा लास्ट में इसके बारे में थोड़ा सा बता दूंगा। बट स्टार्ट करते हैं आपका क्वेरी
से। ठीक है? अब सबसे पहले मैं क्या लेके आया हूं? मेरे पास एक सिंगल टेबल है। इस सिंगल टेबल के ऊपर कौन-कौन सी क्वेरीज
पॉसिबल हो सकती हैं। फिर हम दो टेबल्स को जॉइन करने वाली क्वेरीज करेंगे। फिर हम सीक्वल के जो एग्रीगेट फंक्शनंस है, डेट
फंक्शनंस हैं उनके ऊपर बात करेंगे। तो एक-एक करके सारे टॉपिक कवर करवाऊंगा। कोई मर्जी इंटरव्यू आ जाए। मजाल है कि आप पीछे
रह जाओ। इंटरव्यूअर खड़े हो के क्लैपिंग करेगा कि यार इस बंदे के पास खतरनाक नॉलेज है। अब यहां पे स्टार्ट कर रहा हूं जी
क्वेश्चन नंबर वन से। ध्यान से सुनना। राइट अ क्वेरी टू डिस्प्ले ऑल द इंजीनियरिंग एंप्लई ऑर्डर्ड बाय सैलरी
फ्रॉम द हाईएस्ट टू द लोएस्ट। मेरे पास एक एंप्लई टेबल है। पहले स्कीमा को समझना जरूरी है। टेबल को समझना जरूरी है। टेबल
में मेरे पास इस तरीके से 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 ठीक है
तो ये मैंने सेव करवा लिया देखो लॉजिक कितना प्यारा है हम अब क्या करेंगे हम लोग इन दो रोस को डिलीट करने की कोशिश करेंगे।
सिर्फ पहली वाली जो रो है उसको कीप करेंगे। उसके लिए हमने देखो क्या किया? डिलीट फ्रॉम कस्टमर अंडरस्कोर रिकॉर्ड जो
भी मेरा ये टेबल है उसमें से वेयर कस्टमर आईडी इन सेलेक्ट कस्टमर आईडी फ्रॉम द रैंक्ड। मतलब ये जो हमने बनाया ना ये वाला
जो टेबल है टेंपरेरी इसके अंदर मैंने इसका नाम दे दिया रैंक। अब इसमें हम लोग क्या करेंगे? जहां पे भी रो नंबर ग्रेटर दैन वन
है। तो देखो रो नंबर ग्रेटर दैन वन कहां है? ये टू एंड थ्री। यानी इसको डिलीट करेगा और इसको डिलीट करेगा। सिर्फ एक वाली
को रख लेगा। एक वाली पता है कौन सी है? यह वो है जो निखिल ने लेटेस्ट अपडेट किया था और उस तरीके से आपका डेटा बड़ा इंपॉर्टेंट
लॉजिक है क्योंकि इंटरनली ये बहुत बड़ा कांसेप्ट है। लेकिन अगर एक-एक करके आप इसको ब्रेकडाउन करके समझोगे तो आपको बहुत
अच्छे से समझ में आएगा। तो एक बार प्लीज इनको सों को अच्छे से नोट कर लेना और एग्जीक्यूट करके देखना जरूर। क्योंकि जब
आप एग्जीक्यूट करके देखोगे तब आपको ज्यादा हैंड्स ऑन प्रैक्टिस करोगे तो ज्यादा चीजों की समझ आएगी। बाकी मैंने जितने भी
कांसेप्ट है एसक्यूएल के जितने भी सारे के सारे यहां पे कवर अप करने की कोशिश कर दी है। जी इन केस कोई छोटा-मोटा रह जाता है
तो वो हम लोग देख लेंगे। आप कमेंट सेक्शन में मेरे को बता देना। बट गाइस प्लीज वीडियो को लाइक कर देना। चैनल को
सब्सक्राइब कर देना। अगर अभी तक आपने नहीं किया और अगर कर भी दिया है तो शेयर कर दो। भाई इनके पीछे बहुत मेहनत है। एक-एक
क्वेश्चन को बनाने में बहुत दम लगता है। तो भैया ज्यादा से ज्यादा शेयर जरूर कर देना।
[घंटी की आवाज़]
Use NULLIF(target, 0) to convert a zero divisor to NULL, which results in a NULL output instead of an error. For example: SELECT achieved / NULLIF(target, 0) AS percentage FROM sales. This safely handles cases where target is zero.
A self-join is when a table is joined with itself using aliases, treating it as two separate tables. It's used to compare rows within the same table, such as finding employees whose salary is higher than their manager's by joining the employee table on manager_id = employee_id.
ROW_NUMBER() assigns a unique sequential number to each row (1, 2, 3, 4). RANK() gives the same rank to duplicates but skips the next rank (1, 2, 2, 4). DENSE_RANK() assigns the same rank to duplicates without skipping (1, 2, 2, 3). Use ROW_NUMBER() for unique ordering, RANK() for gaps in ranking, and DENSE_RANK() for consecutive ranking.
COUNT() counts all rows including NULLs. COUNT(column_name) counts only non-NULL values in that column. COUNT(DISTINCT column_name) counts unique, non-NULL values. For example, if a column has 10 rows with 2 NULLs and 3 duplicates, COUNT() = 10, COUNT(column) = 8, and COUNT(DISTINCT column) = 5.
The WHERE clause filters individual rows before data is grouped, while HAVING filters groups after aggregation. For example, to find departments with more than 2 employees, you'd use HAVING COUNT(*) > 2 after GROUP BY, not WHERE. Use WHERE for row-level conditions and HAVING for group-level conditions.
Use a subquery: SELECT MAX(salary) FROM employee WHERE salary < (SELECT MAX(salary) FROM employee). This finds the max salary less than the absolute max, effectively returning the second highest. For duplicates, add DISTINCT inside the subquery to ensure unique values are considered.
Use a Common Table Expression (CTE) with ROW_NUMBER() to rank duplicates by creation date descending, then delete rows with rank > 1. Example: WITH ranked AS (SELECT *, 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 WHERE rn > 1).
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
SQL Job Interview Prep: What Companies Really Ask (Watch Real Calls)
Watch real SQL job interview calls to see exactly what questions companies ask and how candidates answer (and sometimes struggle). The instructor breaks down each interview question, from T-SQL constructs and indexes to SSIS and temp tables, revealing exactly what you need to know to get hired as a data professional.
Master SQL: Comprehensive Guide to Advanced Data Analytics and Optimization
Explore an extensive SQL course covering fundamentals to advanced topics including data warehousing, analytics, complex querying, performance tuning, and AI-powered coding assistance. Learn practical techniques, real-world project workflows, and best practices to excel in data engineering and analysis using SQL.
Comprehensive SQL Course: From Basics to Advanced Database Design
Master SQL with this full beginner-friendly course covering database fundamentals, MySQL installation, table creation, data manipulation, complex querying, joins, triggers, ER diagrams, and converting ER diagrams to schemas. Learn practical examples and advanced techniques to design and manage relational databases effectively.
Lifting the Veil Career Paths: SQL Training & Job Stacking Strategy Revealed
This video reveals the new Lifting the Veil IT Academy platform, featuring structured career paths (Data Analyst, Data Engineer, AI Engineer, etc.) and job stacking strategies. The instructor discusses the TSQL-based curriculum, resume-building labs, industry secrets about certification cheating in India, and explains database normalization (1NF, 2NF, 3NF) plus the difference between star and snowflake schemas.
SQL Views Explained: Deep Dive into Use Cases, Benefits & Best Practices
This comprehensive tutorial goes beyond basic view creation, explaining why SQL views are powerful tools for data projects. Learn how views improve reusability, security, and abstraction, and discover six critical use cases including central business logic, hiding complexity, and implementing data security.
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