किसी भी Data Science Interview को crack करने के लिए One of the most important skill होता है SQL क्योंकि SQL आपको help करता है एक database से interact करने में जहांपे सारा data store होता है Hi folks, मैं हुरिशब और मुझे Data Science field में लगबख साड़े 4 साल से भी जादा समय हो चुका है और उन्ही learning और experience के basis पर कि उनको एक SQL का end to end project चाहिए तो SQL सिखाने के लिए इस channel पर already मैंने एक playlist बना रखी है मैंने SQL को basics लेके advance तक cover किया है तो इन वीडियो और प्लेलिस्ट के हल्प से आपके SQL से लेटर सारे थेरोटिकल डॉट्स लोग जाएंगे आपको ये पता लग जाएगा कि SQL होता क्या है उसको यूज कैसे करते हैं अब बात करेंगे हम लोग उसके Implementation के बारे में मतलब SQL के Applications के बारे में और फाइनली आपका एक Data Science Interview क्रैक करने में और अपने portfolio में add कर सकते हो तो इसलिए इस video का like target है सिर्फ 1000 likes तो अगर आपको यह video अच्छा लगा हो तो please like this video तो चलिए अब इस video को start करते हैं तो आप screen पे देख सकते हो जो project हम लोग करने वाले है उसका नाम है digital music store analysis और यह beginners के लिए है तो आप जैसे इस project को solve करेंगे same to same इसके अलावा भी बहुत सारे project है जो की similar होते हैं जैसे की book store analysis हो गया आपका movie analysis हो गया तो जो learnings है वो सभी projects में almost same है अगर आप इस प्रोजेक्ट को बढ़ते हैं, तो आप सबसे पहले स्किल को बढ़ सकते हैं और यह प्रोजेक्ट आपको पोर्टफोलियों को बनाने के लिए यह प्रोजेक्ट को बढ़ते हैं और आपको एक डाटा एनलिस्ट का जॉब करने के लिए जाएगा अगर आप इस प्रोजेक्ट को बढ़ते हैं, तो आप इस प्रोजेक्ट को बढ़ते हैं नेक्स्ट आप देख सकते हैं जो डेटाबेस हम लोग यूज करने उसका स्कीमा है तो स्कीमा मतलब होता है जो टेबल से दिन डेटाबेस में उनके बीच में क्या रिलेशन्स है तो उसको स्कीमा बोलते हैं तो आप देख सकते हैं यहाँ पर टोटल 11 टेबल्स है तो यह पू तो उसके लिए क्या करेंगे सबसे पहले डाटाबेस बनाएंगे तो मैं बोलता हूं क्रिएट डाटाबेस और डाटाबेस का कुछ भी नाम दे सकते हो तो मैं बोल देता हूं म्यूजिक अंडरस्कोर डाटाबेस ठीक है आप कोई भी नाम दे सकते हो उसको आपको सिंपली इ यहां पर आपको एक ऑप्शन मिल जाएगा रिस्टोर का और आप उस पर क्लिक करिए और यहां पर आपको कुछ नहीं करना है जो फाइल नेम दिया है यहां पर जो फोल्डर बनाएं उस पर क्लिक करिए और जहां पर भी आपने डेटा जो अभी डाउनलोड किया है जिसका ल तो आप देख सकते हैं यहां पर restore start हो गया और successfully completed ठीक है बस इतना से step करना है अभी अगर देखते हैं हम लोग tables अभी देख नहीं रही है बट यहां पर ��ैसे refresh करूँगा मैं तो आप देखो 11 tables आ गई तो इस तरह से आप database को restore कर सकते हो अब एक काम करते हैं सबसे पहले आप query तो आप देख सकते हैं जो output आया है हमारे पास उसमें album ID है, title है और artist ID है, ठीक है, मतलब हमारा data आ चुका है, कोई दिक्कत नहीं है, अब चलते हैं अपने questions पर और उनको एक-एक करके solve करते हैं, तो आप screen पे देख सकते हैं जो question set 1 है, वो easy questions का है, तो सबसे पहला question पूछ रह तो सबसे पहले मैं वो टेबल सेलेक्ट करता हूँ, फिर देखते हूँ उसमें क्या सीन है Select star from employee अब यहाँ पे इस चीज का ध्यान आपको रखना होगा कि कौन सा टेबल सेलेक्ट करना है तो यह obvious बात है कि वो employee table के आसपास ही मुझे data मिलेगा या तो employee table किसी से join करना होगा या तो वो data मेरा employee table में direct होगा तो सबसे पहला step होगा कि आप employee table को open करके देखे तो employee table का output आ चुका है इसको मैं थोड़ा बड़ा कर देता हूँ तो आप देखो यहाँ पे multiple columns है employee id, last name, first name, title और सब कुछ सबसे easy तरीका मुझे लग रहा है senior most employee पता करने का वो है levels column का तो यहाँ पे आप देखो सबी employee को कुछ level दिये हुए हैं तो जो सबसे पहला employee आएगा वो मेरा सबसे senior most होगा और डर बाए लेवल्स ठीक है और मुझे चाहिए डिक्रीजिंग ऑडर में इसको करते हैं रन तो आप देख सकते हैं यहां पर L7 सबसे ऊपर है ठीक है तो यह सॉर्टेड हो चुका है अब इसमें अगर मुझे सिर्फ एक आउटपुट चाहिए तो मैं क्या तो सबसे पहले हम लोगों को देखना होगा कि कौन से टेबल से सॉल्लेशन मिलेगा तो यहां पर आप देखो इसने इनवाइस के बारे बात किया है तो मैं पास एक टेबल है जिसका नाम है इनवाइस तो सबसे पहले उस टेबल को लेकर आते हम लोग सेलेक्ट सब कुछ फ्र और ये सब कुछ है बट मेरा question क्या है कि कौन सी countries हैं जिसमें सबसे आदा invoices है तो हम लोग use करेंगे billing country column और इसी के help से हम लोग अपना output लेके आएंगे तो यहाँ पे इसमें most invoices बोला है इसका मतलब उसको सबसे आदा count चाहिए invoices के तो मैं क्या बोलूंगा सबसे पहले select count और आप कुछ भी किसी भी column का नाम दे सकते हो बात एक ही है और दूसरा चीज मुझे चाहिए होगा billing country है ठीक है फ्रॉम इनवॉइस तो इसको मैं नीचे लाइन में लिख दे रहा हूं और इसके बाद मुझे करना होगा ग्रुप बाई और ग्रुप बाई मैं इसलिए कर रहा हूं ग्रुप बाई मैं करूंगा बिलिंग कंट्री के पर क्योंकि यह जो यह से यूएस आप मुल्टीपल टाइम्स है तो अगर इसको मैं ग्रुप कर दूंगा तो यूएस से कितनी बार आया कि मतलब कितने बार उसके बिल कि आप देख सकते हैं आप यहां पर आप पूटा गया तो सबसे हाई जिसमें इनवॉइसेस है वह यूएस जिसके वन थर्टी वन है ठीक है दूसरा कैनेडा जिसके सेमटी सिक्स है तीसरा ब्राजिल जिसके सिक्सटी वन है ठीक है सारा data मिल जाएगा तो यह हो गया हमारा question number 2 solve अब चलते हैं अपने third question पर third question है what are top 3 values of total invoices ठीक है यह भी काफी easy question है again इसमें invoice के बारे में पूछा गया है तो सबसे पहले हम लोग invoice table को उठाते हैं इसको करते हैं और इसके बाद बात कर रहा है कि टॉप थ्री वेल्यूज इन वाइस की ठीक है तो है तो मैं बोलूंगा ऑडर बाई जो लास्ट कॉलम है मेरा जो कि टोटल और इसको मैं बोल दूंगा डिसेंडिंग तो इससे मुझे टोटल वैल्यू मिल जाएगी मैं आपको दिखा देता हूं तो यहां पर मेरा डाइट है वह सॉर्टेड हो चुका है यहां पर मैं बोल दूंगा भाई मुझे सिर्फ टोटल वैल्यू दे दे अगर इसको करते हैं run, तो आप output देख सकते हो, यहाँ पर मैं पास 3 value आ गई हैं, सबसे पहला जो invoice है, वो 23.75, दूसरा है 19.8, और तीसरा भी है 19.8, ठीक है, तो इस तरह से हमारा question number 3 भी solve हो गया, चलते हैं अब नेक्स्ट question पर, question number 4 है, which city has the best customers, we would like to throw a promotional music festival in the city we made the most money, ठीक है and some of all invoice total तो इस question को solve करने से पहले मैं आपको एक बार समझा देता हूँ कि यह जो company है यह जो store है वो एक festival organize करना चाती है music festival और यह उस city में करना चाती है जहाँ पे इनका सबसे अधा sale हुआ है जहाँ पे इनकी सबसे अधा albums या songs बिके है तो यह करना है तो काफ़ी interesting question है इसको अभी हम लोग step by step करके solve करते हैं तो सबसे पहला step होगा कि invoice table को उठा के सामने लाते हैं by up invoice table का सारा डाटा एक बार दिखाओ तो इनवॉइस टेबल हम लोगों सिर्फ दो चीजों पर फोकस करना है सबसे पहला सिटी ने और दूसरा जहां पर सबसे हाईएस्ट इनवॉइस टोटल हो ठीक है तो मेरा सिटी वाला कॉलम यह है और दूसरा इनवॉइस टोटल ही है ठीक है तो काफी इजी है इनवॉइस टोटल का मतलब हो गया मुझे सम करना होगा ट टोटल और दूसरा चीज मुझे चाहिए होगा इससे Billing City फ्रॉम इनवॉइस इसके बाद हम लोग ग्रुप बाइट का यूज करेंगे जैसे कि हम लास्ट क्वेश्चन में ग्रुप बिलिंग सिटी और उसके बाद हम लोगों को डाटा शॉट करना है तो मैं बोलूंगा हाई एस्ट नंबर सबसे ऊपर तो मैं इसको डिसेंडिंग से शॉट करूंगा इसको करते हैं रन तो फाइली हमारा आउटपूट आ गया है तो जो सबसे हाई एस सेल्स वाला टोटल इनवर्स वाला कंटिटी है वह पर आग इसका हुआ है तो इस तरह से हमारा फोर्ट क्वेश्चन सॉल्व हो गया तो इसने सबसे पहले पूछा था कि बेस्ट कस्टमर कौन से तो इस तरह से हमारा क्वेश्चन नंबर फोर्ट भी सॉल्व हो चुका है अब चलते अपने नेक्स्ट क्वेश्चन पर तो फिर देख सकते हो Who is the best customer? The customer who has spent the most money will be declared as the best customer. Write or carry that returns the person who has spent the most money. तो ये भी easy question है, इसको जल्दी से solve करते हैं. तो इस question में customers के बारे में बात हो रही है, तो सबसे पहले हम लोग customer के table को check करते हैं.
तो मैंने बोला select सब कुछ from customer और इसको करते हैं run. तो आप customer table देख सकते हैं, उसमें customer ID है, first name, last name, company address. है और एड्रेस के बाद सिटी है स्टेट है पोस्टल कोड है फोन है इमेल है ठीक है तो एक चीज तो क्लियर होगी कि कस्टमर टेबल में हमारा इनवॉइस रिलेटेड कोई डाटा नहीं है इसके लिए हम लोगों इसको इनवॉइस टेबल से कनेक्ट सबसे अधारा अलबम खरीदी हूँ ठीक है तो अगर कस्टमर इनवाइस टेबल को मैं कनेक्ट कर दूं तो मुझे डाटा मिल जाएगा क्योंकि जो सेल्स का डाटा है या जो भी इनवाइस का डाटा है वो इनवाइस टेबल में तो आप देखो ये दोनों टेबल कनेक्ट हो स तो customer table से मुझे चाहिए तो C-U-S-T-O-M-R dot मुझे चाहिए customer ID इसके अलावा मुझे customer table से चाहिए होगा first name और इसके अलावा मुझे चाहिए होगा customer dot last name तो यह सब कुछ मुझे चाहिए customer table से और इसको हम लोग join करेंगे, join invoice on, तो customer id पे join करना है, तो इसके लिए मैं क्या बोलूँगा, इसको उठालूँगा customer.id is equals to invoice, इस ही तो है यार, invoice.customer id ठीक है तो यह जॉइन कर देगा यहां पर एक चीज का और ध्यान देना है कि इनवॉइस टेबल पर इनवॉइस टेबल से मुझे चाहिए टोटल मतलब कितना कितना उसने कस्टमर ने समान खरीदा है उसका टोटल चाहिए तो मैं क्या बोलूंगा कि मुझे सम चाहिए कहां से यह करने के बाद अब मुझे ग्रूप करना पड़ेगा कस्टमर पर कस्टमर पर इसलिए क्योंकि ऐसा हो सकता है कि एक कस्टमर ने काफी बार अलग-अलग समान लिया हो अलग-अलग साउंड या अलग-अलग म्यूजिक या एलबम लिया तो उसका मुझे समेशन तो मैं बोलूंगा order by total और मुझे highest value चाहिए इसलिए बहुत important डिसेंडिंग लगाना बहुत बार भूल जाता हूँ मैं खुद तो इसलिए डिसेंडिंग लगाना आपको और last में limit 1 मुझे सिर्फ एक output चाहिए इसको करते हैं run और आगे अभी तो जो output आया है उसका customer id 5 है और उसका first name R second name Madhav ठीक है R Madhav है और इन्होंने spend किया है 144.54 cents तो ये one of the best customer वह इनको दे सकते हैं आर मादव को तो इस तरह से यहां वाला क्वेश्चन भी सॉल हो गए अब चलते हैं अपने नेक्स्ट क्वेश्चन पर तो अब जल्दी से चलते हैं अपने क्वेश्चन सेट टू पर जो कि मॉडरेट लेवल का इसका सबसे ईमेल स्टार्टिंग विद लेटर ए ठीक है तो एस विश्व टू निश्चित तो जलते हैं इसको उसको अच्छे समझते हैं तो जैसा कि ये question moderate category का है, तो थोड़ा सा, मतलब tough होगा, जादा नहीं, सबसे पहला चाहिए हम लोग को देखना होगा कि कौन कौन से table से data आएगा, तो उनको भाई साब को चाहिए email, तो email मुझे पता है कि customer table में है, बाकि first name, last name भी customer से मिल जाएगा, मगर जॉनर का data है, वो कि मेरा जोनर का नेम है वो रॉक है तो वो यहां पर है इस नेम में इसको जॉइन करने के लिए मुझे देखना पड़ेगा जॉनर आईडी है ठीक है जॉनर आईडी को मैं ट्रैक से जॉइन कर सकता हूँ यहां पर भी जॉनर आईडी है इसको मैं जॉइन कर सकता हूँ ट्रै क्योंकि लिखने में बहुत ज्यादा टाइम लगेगा और इसको मैं स्टेप बाय स्टेप करके आपको अच्छे समझा देता हूं ठीक है तो बाद था जो कि जिसको मैं जॉइन कर सकता हूं अपने इनवॉइस टेबल से ठीक है और इन वॉइस काम लोग ट्रैक टेबल से ऐसे करके लिस्ट थी तो यहां पर आप देखो सबसे पहले हम लोगों ने क्या किया यहां पर इनर क्वेरी लगाई है इसके अंदर सेलेक्ट ट्रैक आईडी बोला है और ट्रैक आईडी सिर्फ वही है जिसका जॉनर रॉक मूजिक का ठीक है तो अगर मैं इसको रन करता हूं तो देखा ऑप्ट क्या आएगा तो यहां पर कि कोई दिक्कत नहीं उसमें उसके बाद मैंने इसको जॉइंट किया जॉनर टेबल से ठीक है किसके बेसिस पर जॉनर आईडी के बेसिस पर और मेरा कंडीशन क्या था कि जो जॉनर का नेम है वह कैसा हो यहां पर इक्वल से भी लिख सकते हो बट तो यहाँ पर मैंने दो बार जॉइन लगाया सबसे पहले क्या किया customer table from उसके बाद जॉइन किया invoice table को किस पे customer ID पे तो अभी last question पे हम लोगों ने same किया था customer ID के साथ जॉइन next क्या किया invoice line next क्या किया invoice line को जॉइन किया किस के साथ invoice table के साथ किस पे invoice ID पे उसके बाद जो wear filter है जो अभी आपका एक condition में डाल दिया wear condition के अंदर कि जहाँ पे track ID जो है मेरा वो यह सब ही हो जो आपका output में दिख रहा है तो यह track id कौन से है, again यह सिव rock category के है, rock genre के है, ठीक है, तो इसको करते है run, और last में क्या किया है, मैंने सब कुछ करने के बाद email से sort कर दिया, क्योंकि उन्होंने बोला था ascending चाहिए a से, यहाँ पे आप देखो, starting with a, ठीक है, तो इस तरह से आप break करके question को solve कर सकते है, तो इ जो next question है वो बोल रहा है let's invite the artist who have written the most rock music in our data set write a query that returns the artist name and total track count of top 10 rock bands ठीक है तो इसके अंदर भी again rock के बारे में बात किया है तो हमारा जो genre होगा वो rock होगा पहला चीज दूसरा जी बोल रहा है कि इसको artist का name चाहिए और total track का count चाहिए ठीक है अब हमारा जो केस है सबसे पहले हम लोग को आर्टिस्ट का नेम चाहिए जिसने सबसे आधा गाने गाए ठीक है तो आर्टिस्ट का नेम मुझे मिल जाएगा आर्टिस्ट टेबल में और जो गाने का रिकॉर्ड है वह सब ट्रैक में है तो यहां से मैं देख सकता तो यहां गया है कि आप सबसे पहले मैं सॉल्यूशन पेस्ट कर दे रहा हूं क्योंकि again time काफी जादा लगेगा तो यहाँ पर जैसे मैंने बताया आपको track table जो कि हमारा center table है जहाँ से हम लोग genre के साथ भी खेल सकते हैं genre भी select कर सकते हैं जो कि हम लोग को rock चाहिए ठीक है जैसे कि previous question में किया था और दूसरा track table की help से मैं सब कुछ start कर रहे हैं track table से select सब कुछ from ट्रैक इसको करते हैं इसमें ट्रैक आईडी है नेम है एलबम आईडी है ठीक है मीडिया टाइप है कंपोजर कौन है मिली सेकंड बाइट्स और यूनिट प्राइस ठीक है तो यह ट्रैक टेबल हमारा अभी इसका काम नहीं है हां यहां पर हम लोगों क्योंकि बीच में album table था और album table के basis पर मैंने artist id का join लगाया है ठीक है तो ये मेरा step हो गया दूसरा मैंने क्या कि ये genre लगाया है क्योंकि मैं पास track table के अंदर genre id था तो मैंने directly genre id के साथ join कर दिया तो यहाँ पर actually हम लोगों को 4 table join की है ठीक है काफी बड़ा join है इसको और optimize तरीके से चार टेबल को जॉइंट किया उसके बाद सिंपली वेर कंडीशन लगा दिया क्योंकि जॉनर नेम में मुझे सिर्फ रॉक चाहिए था और उसके बाद मैंने ग्रूप बाई किया आर्टिस्ट आईडी पर क्योंकि जो मुझे आउटपूट चाहिए वो आर्टिस्ट के विश टॉप 10 आउटपूट पर चाहिए इसको करते हैं रन तो आप पूछ देख सकते हैं यहां पर आर्टिस्ट आईडी आ गया नेम आ गया और फिर नंबर ऑफ सांग सागे तो सबसे यहां जो सांग से जिसने गाए हैं कोई जेट जैपलिन करके हैं कोता नहीं कौन से भाई नाम है दूसरा यूटू ठीक है यह मिल से बैंक के नाम है ठीक है तो यह बैंक जिसने सबसे अधिक गांव गाए तो यह that have a song length longer than the average song length return the name and milliseconds for each track order the song length by the longest song listed first ये question काफी easy है और इस type का same to same question मैंने अपने SQL के tutorial list में भी डाला हुआ है तो चलते जल्दी से इसको solve करते हैं तो सबसे पहले बात करें कि कौन सा table लेना होगा तो ये चीज हम लोगों समझ में आ गया कि milliseconds के उपर सारा game चल रहा है मतलब जो की song है वो average length का हो सारे songs का मिला के तो यह देखते हैं हम लोग मिली सेकेंड्स या जो सॉन का लेंथ है कौन से टेबल में तो आप देख सकते हैं यह सारा डिटेल आपको ट्रैक टेबल के अंदर मिल जाएगा यहां पर मिली सेकेंड्स है ठीक है तो मतलब सारा कुछ हम लोगों को ट्रैक टेबल के ऊपर करना है तो जैसा कि मैंने आपको बताया कि इसको दो step में करेंगे तो सबसे पहले मैंने क्या बोला select average of milliseconds milliseconds क्या है जो की song का length है और इसको मैंने average triangle length बोल दिया है और ये value मुझे चाहिए inner query के रूप में पर अब इसको run करते हैं मैं आपका output दिखा देता हूँ तो आप output देख सकते हैं जो मेरा milliseconds का average value आ रहा है इसके basis पर मुझे सिर्फ where का filter लगाना है काफी easy question है और काफी बार interview में पूछा जाता है हम लोग का जो आप पूट है वह सेम आएगा तो पहले मैं इसको रन कर देता हूं बाकी सब कुछ नॉर्मल है सेलेक्ट नेम मिली सेकंड्स फ्रॉम ट्रैक और जहां पर यह कंडीशन लगा दिया इसको करते हैं रन तो यहां पर सभी सॉन्स के नेम आउटपुट मिल रहा है अ जो कि यह है तो अगर इसको उड़ा दूं मैं और यहां पर अगर सिर्फ यह वैल्यू लिखो ना तब भी मेरा ऑप्ट आ जाएगा सेम ऑप्ट आ जाएगा थ्री नाइन थ्री फाइव 99 ठीक है अगर सिर्फ इसको रन करता हूं मैं तब भी देखो मेरा ऑप्ट आएगा और आ रहा है ठीक है और जो पहले आ रहा था सेम टो सेम वहीं ऑप्ट आ रहे ब तो आपको आके फिर से वैल्यू चेंज करनी पड़ीगी अदरवाइस यह आउटपूट गलत आएगा तो उस केस के लिए हम लोग क्या करते हैं क्वेरी को डाइनेमिक बनाते हैं ताकि फीचर में भी यूज़ हो सके जो कि एक इंटरव्यू में पूछा जाता है तो यहाँ पे क्या किया है इसने multiple tables को simple जॉइन कर दिया है सबसे पहले customer table उठाया फिर इसको invoice के साथ जॉइन किया फिर invoice line के साथ जॉइन किया फिर track के साथ और finally genre के साथ और genre के साथ join करने के बाद उसने अपना filter लगा दिया genre table में जो कि यह है rock और output same आएगा अगर इसको मैं run करता हूँ तो हमारा output same आप देख सकते हैं, output एक बार है, email ID आ गई, first name, last name, और जॉनर जो है रॉक है, तो अगर यह आप चाहो तो रख सकते हैं, वरना यहां से name अटा दोगे तो जॉनर अट जाएगा, तो इस query को हम लोग optimize नहीं बोलेंगे, क्योंकि इसमें काफी सारे join हुए हैं, और जब भी आ� और ये advanced question आपको help करेंगे किसी भी questions को break करने में और उनको कैसे हम लोग break करके step by step solve कर सकते हैं और ज़्यादातर interview question में अगर आप experienced हैं तो ज़्यादातर interview question में इसी type की questions आपसे पूछे जाएंगे तो सबसे पहला जो question है find how much amount spent by each customers on artist write a query to return customer name, artist name and total spent customer name, customer एक अलग table अपने पास, artist अगेन एक different table है, और total spent, मतलब जो invoice का related है, वो एक अलग table है, इसका मतलब तीन अलग-अलग table हैं, जिसमें से हम लोग को data चीज़े होगा, तो सबसे पहले चीज़ इन तीनों table को हम लोग देखना होगा, अगर आप direct invoice की value उठाते हो, जो की total value है, invoice table में, तो वह गलत हो जाएगी तो यहां पर आपको टोटल वैल्यू देती है जो कि प्रोडक्ट लेवल पर बट मुझे वैसा नहीं चाहिए मुझे चाहिए कि इन ट्रास जैसे कि यह प्राइस जैसे कि मान लो एमरपी एक तरह से आप मान लो जैसे मान लो आपने कोई एक सॉन या कोई तो इस case में यह आपका एक थोड़ा सा note point है कि आपको इस चीज़ का ध्यान रखना होगा यहाँ पे जो हम लोग invoice cost की बात करने हैं, total cost की बात करना हैं, उसके लिए आपको unit price into quantity करना होगा, वरना जो आपका output है वो match नहीं होगा, ठीक है, तो अब चलते हैं इसको SQL में और solve कर CT का क्यों यूज़ किया है क्योंकि जिसको CT नहीं पता मैं बता देता हूँ CT होता है Common Table Expressions इसको again मैंने अपने course में बताया है और CT आपको help करता है एक temporary table बनाने में ठीक है ये table कहीं मतलब exist करते हैं नहीं सिर्फ इस query के लिए temporary table बनाएगा जो की CT के अंदर होगा और इस temporary table के help से आप या तो join कर सकते हो या तो कोई operation perform कर सकते हैं अपना data output लाने के लिए ठीक है इतना होता है CT CT का कोई syntax होता है तो आप देख सकते हैं यहाँ पे with उसका CT का नाम देते हैं उसको आप as clause लगाते हैं, और उसको आप यह bracket के अंदर CT query लिखते हो, और यह जो query है, यह आपकी temporary table है, इसको आप अलग से भी run कर सकते हो, जैसे मालो सिर्फ यह part मैं run करता हूँ, जो कि आप देखो यहाँ पर bracket के अंदर है, as के बाद जो bracket है, इसको अगर सिर्फ मैं अलग स आर्टिस्ट आईडी मिल रहा है आर्टिस्ट नेम मिल रहा है टोटल सेल्स मिल रहा है तो यहां पर हम लोगों को क्या किया इनवॉइस लाइन टेबल लिया हुआ इनवॉइस लाइन क्यों लिया है क्योंकि मुझे यहीं पर जो टोटल इनवॉइस इसका वैल्यू जो भी इसका MRP होगा, into quantity, कितनी quantity है, 1, 2, 3, 10, 50, ठीक है, तो वो multiply यहाँ पर करना है, और यह कहां से मिल रहा है, हम लोगों को invoice line table से, उसके बाद हम लोगों को नहीं किया है, again, अब data लाने के लिए हम लोग multiple joins कर रहे हैं, invoice table को हम लोग join कर रहे हैं, track से, ताकि track ID मिल जाए, यह तीन जॉइंट सिर्फ इसलिए लगा है ताकि हम लोग आपको आर्टिस्ट आईडी और आर्टिस्ट नेम मिल जाए इसके अलावास का कोई परपस नहीं है तो यहां से मुझे क्या आउटपूट मिल गया मैंने बोला कि मुझे एक तो टोटल सेल्स की वैल्यू मिल गई ठीक है और यहां पर मैंने लिमिट वन लगाए इसलिए आपको सिर्फ एक आउटपूट मिला है अगर यह लिमिट वन अटा दू टॉप आर्टिस्ट चाहिए ना तो इसके लिए मैं आर्टिस्ट आईडी के बेसिस पर इसको ग्रूप कर रहा हूं दूसरा मैंने आर्डर किया है थ्री से तो थ्री क्या होता है यह जो पहला हुआ यह आपका वन होगा ठीक है मतलब जो आप यहां से समझ सकते हैं आपको यह तो यहां तक मेरा दो पार्ट सॉल्व हो गया सबसे पहला मुझे सेल्स का वैल्यू चाहिए था वह मिल गया टोटल इनवॉयस दूसरा मुझे आर्टिस्ट का नाम नंबर चाहिए था वह मिल गया तीसरा चीज बसता है मेरा कस्टमर का डिटेल तो जो टंबरी टेबल मैंने फर्स्ट नेम लास्ट नेम जो कि हम लोगों चाहिए था आर्टिस नेम ऊपर ही है कोई दिक्कत नहीं है सम यह भी ऊपर है इसमें भी कोई दिक्कत नहीं है ठीक है इसको भी मैं नीचे कर दें ताकि आपको दिखाई दे सम सेम चीज अभी जो हम लोगों ने किया था प्राइ इनवॉइस आईडी के बेसिस पर इनवॉइस लाइन को जॉइंट किया उसका हम रोगों ने इनवॉइस लाइन को ट्रैक टेबल से जॉइंट किया ट्रैक आईडी के बेसिस पर उसका अपने ट्रैक टेबल को जॉइंट कर रहे हैं अलबम टेबल से अलबम आईडी कर लास्ट हम लोग जॉइंट कर रहे हैं बेस्ट सेलिंग आर्टिस्ट जो कि हमारा यह टेबल है यह पूरा पूरा ठीक है वह पूरा जाएगा तो यह जो आपका जॉइन ना में जॉइन यह फाइनल आपको दिख रहा है कि मुझे ऐसा आप चाहिए इसका सबसे अधार सेल्स टोटल रिवेन्यू सेल्स तो टोटल सेल्स तो वह यहां से आ रहा है और वह पूरा पूरा मैं इस इनर पूरी के हिसे लेकर आ रहा हूं तो यहां पर हम रुगने अगर यह फाइनल जॉइन लगाया यहां पर यहां पर मैंने बो इसके बाद मैंने बोला group by करना है 1, 2, 3, 4 के basis पे और 1 क्या होगा इसमें आपका customer ID होगा first name, last name और 4 क्या होगा आपका artist name ठीक है और last मैंने बोल दिया कि इसको आपको decreasing order में sort करना है again इस जो amount spent है इसके basis पे आपको इसको sort करना है तो अगर इस सब कुछ को मैं एक साथ मिला के तो यह जो आपको total अभी आया था ना 190 ऐसा कुछ आया था total वो इन customers की वज़े से आया था यह customer का detail आ गया first name last name जिनने ने queen का album लिया इतने रुपे का इतने रुपे का और यह sorted order में सारा data आ गया तो अगर आपको doubt होते हैं एक बार same to same join यहाँ पे लगा है बस फर्क एक last line का आया हुआ है जहाँ पे हम लोगों को artist का जो idea है वो हम लोग पहले ही इस inner query में निकाल चुके हैं बस बाकि सब कुछ normal है जो कि इससे पहले भी कर चुके हैं और यहाँ पर मेरों के सीटी का हेल्प लिया ठीक है तो आपको यह क्लियर हो गया चलते अपने नेक्स्ट क्वेश्चन पर अब जो नेक्स्ट एडवांस क्वेश्चन है वह है क्वेश्चन नंबर टू वी वांट टू टाइम डाउट द मोस्ट पॉपुलर म्यूजिक जॉनर फॉर इच कंट्री ठीक है वी डिटरमाइन द मोस्ट पॉपुलर जॉनर है चलते हैं सिक्वेल में सॉल करते हैं तो सॉल्यूशन देखने से पहले हम लोग इस क्वेश्चन को समझ लेते हैं तो इसने क्या बोला कि कस्ट कंट्री वाइज को सबसे अधार सेलिंग या जो सबसे अधार पर्चेज हुए वह लें लें लें ले और लास्ट में जॉनर आईडी बठा रहा हूँ क्योंकि उन्होंने आगे यूज करेगा अब यहाँ पे इस मेथड को सॉल्व करने के लिए दो चीज का यूज किया है मैंने एक तो CTE का हेल्प लिया है दूसरा रो नंबर का यूज किया है मैंने ठीक है तो आपको मैं यह जो अंदर वाली क्� तो आप इनर को एक आउटपुट देख सकते हो अर्जेंटीना की जितने भी अर्जेंटीना की वेल्यूज हो सब आगे यहां पर इतना पर्चेस हुआ है सेवनटीन कॉंटिटी 11 कॉंटिटी ठीक है इतना सेल हुआ है कि जॉनर की हुआ है अल्टरनेटिव एंड पंक का भी कोई वैल्यू से 14 123 ऐसा करके फिर ऑस्ट्रिया का है फिर बेलजियम का ऐसे बहुत सारी कंपनी है सॉरी ऐसे बहुत सारी कंट्रीज है बट मुझे सिर्फ एक सभी कंट्रीज का हाइएस्ट वेल्यू चाहिए तो उसका हम लोग कैसे सॉल्व करते हैं रो नंबर की तो आप देखो होगा कि अर्जेंटीना सिर्फ एक बार आएगा और उस टीज सिर्फ एक बार आएगा बाकी सब ऐसे टीज रहेगा अब देखो आप अर्जेंटीना सिर्फ एक बार आया और उस्ट्रेलिया सिर्फ एक बार आया और उस्ट्रिया भी सिर्फ एक बार आया ठीक वन के बासेस पर सॉर्ट कर दे वन क्या था मेरा पर्चेस था तो जो हाईस्ट उसके बासेस पर सॉर्ट कर दे डिसेंडिंग और अर्जन्टीना को जो एबी सीडी है यह कंट्री को असेंडिंग आर्डर में सॉर्ट कर दे यह मैंने इंटरनल मतलब इनर क्वेरी में बोल दि इसी सेम प्रॉब्लम को हम लोग सेकंड मेथड से भी कर सकते हैं जो कि रिकर्सिव की हेल्प से कर सकते हैं तो एक बार मैं आपको हाई लेवल समझा देता हूँ कि रिकर्सिव होता क्या है तो यहाँ पर हम लोगों की आगे विद रिकर्सिव लिखना है आपको उसके बाद सीटी का नाम लिखना है तो सबसे पहले मैं आपको इनर को रन करके दिखा देता हूं तो यहाँ पर आप आप पूछ देखो सबसे पहले पर्चेस जॉनर पर जॉनर आ गया कंट्री आ गई ठीक है वो कैसे किया अगर इसमें से मैक्सिमल वैल्यू सेलेक्ट किया मगर ग्रुप बाई कंट्री के नाम पर मतलब एक कंट्री की कोई एक मैक्सिमल वैल्यू आप उठा लो तो यह अर्जन्टीना में जाएगा देखेगा सेवन्टीन वैल्यू सबसे हाई एस्ट है उसको पर जॉनर 17 आया, एक अर्जेंटीना के लिए एक value 17, नेम आगया, जो भी आपका जॉनर का नेम है, और लास्ट आगया आपका जॉनर ID, यहाँ पे हम लोगों के लिए ये दोनों, recursive query के help से हम लोगों के लिए क्या बोला, कि sales per country सब कुछ चाहिए, sales per country क्या है, ये जो मेरा recursive query, जो CT मैंने बनाया है, वो है sales per country, temporary table है मेरी, उसको मैंने join किया, max genre per country table से, जहाँ पे मैंने सिर्फ और सिर्फ maximum value select किया था, पर चेसेस पर जॉनर का इसमें से एक वेल्यू आउटपूट में आया था ठीक है उसको मैंने जॉइन किया तो इससे किया होगा जैसे से मैं एग्जांपल देखा जैसे मालो यहां से आपको सौ रोज ऑफ डाटा मिला क्योंकि इसका बहुत सारी कंट्रीस तो वो 10 आपको output मिल जाएगा तो इन दोनों table को join कर दिया और last में same जो logic मैंने आपको बताया कि 10 country का नाम बचेगा वही filter यहाँ पर लगा दिया तो आपका output में सिर्फ 10 country मिलेंगी जैसे यहाँ पर आपको output दिख रहा है अब चलते हैं अपने last question पर जो कि same to same इसी recursive concept पर base है और यह project complete हो जाएगा तो इस advanced set का last question आप देख सकते हो question number 3 write a query that determines the customer that has spent the most on music और for each country ठीक है write a query that returns the country along with the top customers and how much they have spent for countries where top amount spent is shared provide all customers who have spent this amount ठीक है इस question के अंदर again तीन part है सबसे पहला चीज country level पर data चाहिए दूसरा customer का data चाहिए कि किस customer ने कितना spent किया amount spent तो ये तीन अपने को चाहिए तो आप देख सकते हैं जो country का data है वो मुझे invoice में मिल जाएगा कि ठीक है कस्टमर का डाटा मुझे कस्टमर टेबल में मिल जाएगा और जो अमांट स्पेंड का डाटा है वह भी आपको इनवॉइस टेबल मिल जाएगा टोटल कॉलम से तो अच्छी प्रीवेस कोशिश से थोड़ा इजी है बट मैथड सेम ऐसे billing country और total spending ठीक है simple दो table को join कर दिया group buy कर दिया और output दे दिया तो क्या किया हम लोगों ने invoice table से हम लोगों ने क्या किया sum किया total का जो कि total spending मन गया मेरा ठीक है लोगों को sum करने के लिए हम लोगों को condition क्या रखी group buy condition रखी है जिसको हम लोग join group buy करेंगे customer id के basis पे ठीक है अगर एक customer अलग अलग date को या अलग अलग समय पे बहुत सारे जैसे purchases कर रहा है उस customer का तो customer id के basis पे group किया second first name और last name ठीक है वो एकी बात है कि customer id एक है ठीक है first name और last name के basis पे भी group किया और last जो हम लोगों ने group लगाया है वो country के basis है क्योंकि जो question में output चाहिए क्योंकि जो country का data चाहिए वो customer level पे चाहिए इसलिए हम लोगों ने last column number 4 मतलब country level पे भी group by किया मैंने इसको solve किया customer id और total spending के basis पे और decreasing order मतलब highest to lowest ठीक है बागी सब as it is है अब जो इसकी subsequent query है जो next query है उसकी जो की मेरा query number ये जो first है जो temporary query उस पे काम करेगी वह यह है कि मुझे मैक्स पेंडिंग फाइंड करना होगा तो उसके लिए मैंने क्या किया सेंटर सालस कोशिश में किया था तो यहां पर हम लोग यह बोले जो टोटल स्पेंडिंग जो लास्ट कॉलम है ना उसकी सिर्फ एक वैल्यू ठाए जो कि मैक्स है और यह तो यह हमारी inner query होगी, same उसके बाद last में कुछ भी नहीं किया, उसके बाद last में हम लोगों ने billing country select किया, total spending select किया, first name, last name select किया और customer id select किया, उसके बाद दोनों temporary table को हम लोगों ने join किया, जैसा कि last question में किया था, customer with country और customer max spending को, इन दोनों को हम लोगों ने join किया, किस पे, billing country तो वो हम लोग ऑटपूट में चाहिए और ऑडर बाई वन तो अब एक बार इसको टोटल रन कर लेते हैं तो यह हमारा फाइनल आउटपूट आ गया है वन का मतलब जो हमारा कस्टमर जो बिलिंग कंट्री था उसके हिसाब से हम लोगों ने इसको सॉर्ट किया है अब आउ� ठीक है उसने इसका कस्टमर आईडी यह और इसने कितना स्पेंट किया टूल अमाउंट वह भी यहां पर आपको दिया हुआ है तो इस तरह के साथ क्वेश्चन को सॉल्व कर सकते हो तो इस क्वेश्चन को हम लोग एक और मेथड से सॉल्व कर सकते हैं सीटी मेथड से तो और उसके बाद मैंने sum किया है total column का जो कि मुझे invoice table में मिलेगा ठीक है और इसको मैंने बोल दिया total spending इसके बाद फिर क्या किया मैंने row number define किया जैसा कि last मैंने question में भी same किया था और partition buy मैंने किया इसको billing country से और order buy किया है जो data को मैंने sort किया है वो किया है जो sum total आ रहा है उसके basis पे इसको थोड़ा छोटपड़ा कर देता हूँ output देखाओ आप customer ID आ गये first name last name आ गया billing country आ गया टोटल स्पेंट आ गया और रो नंबर आ गया तो अभी हो क्या रहा है कि अभी जैसे अर्जेंटीना में आप देखो जो हाईएस्ट वैल्यू है इसको यह वन दे रहा है ठीक है औस्टुलिया में दे रहा है बेल्जिया में दे रहा है अब आप यहाँ पर एक्जांपल देखो अब ब्राजील में इसने क्या किया है जो हाईएस्ट है इसको इसने वन दिया है जो सेकंड हाईएस्ट है इसको इसने टू थर्ड हाईएस्ट को थ्री और यह जो आपको नंबर यहाँ पर दिख रहे हैं यह हो रहा है आपका रो नं और next step में मैं इसको बोल लूँ कि मुझे सिर्फ और सिर्फ वही data चीज़े जिसका row number या तो 1 और या से छोटा, उससे छोटा हो नहीं सकता तो आप equals to 1 भी लिख सकते हो, but best practice के लिए मैंने लिख दिया, तो या तो 1 या उससे छोटा चीज़े, अगर मैं लिखता हूँ तो इ तो यह हम लोगों ने किया है सीटी के हेल्प से तो यह मुझे थोड़ा सो ज्यादा ऑप्टिमाइज और थोड़ा उससे यादा इजी भी लगा कंपेर्ट टू रिकर्सिव वाले मेथड से और यह मेथड मुझे कल वीडियो बनाने के बाद पता लगा तो आज मुझे फिर से और इसके अलावा अगर आपको इसका कोई shortcut method पता है या इससे कोई optimized solution पता है तो आप मुझे comment बता सकते हो वो मेरे लिए भी helpful होगा और जो लोग इस वीडियो को देख रहे हैं उनके लिए भी काफी helpful होगा और अगर आपको कोई doubt है तब भी आप comment कर सकते हो मैं इसका reply करू�