डेटा एनालिस्ट इंटरव्यू सवाल

आप WHERE कब इस्तेमाल करते हैं और HAVING कब?

इंटरव्यूअर असल में क्या परख रहा है, अपना जवाब कैसे स्ट्रक्चर करें, और एक बोला हुआ उदाहरण जिसे आप अपना सकते हैं।

छोटा जवाब

WHERE aggregation से पहले अलग अलग पंक्तियों पर filter लगाता है; HAVING aggregation के बाद समूहों पर filter लगाता है। तो आप कच्चे column पर WHERE में filter लगाते हैं और COUNT या SUM जैसे aggregate नतीजों पर HAVING में। जितना हो सके WHERE में filter लगाएं, क्योंकि grouping से पहले पंक्तियां घटाना सस्ता है। एक आम बग है date filter को HAVING में डालना, जिससे सब कुछ पहले aggregate हो जाता है और नतीजे बदल सकते हैं।

इंटरव्यूअर यह क्यों पूछते हैं

यह बताता है कि आप syntax का पैटर्न मिलाने के बजाय SQL के तार्किक क्रम को समझते हैं या नहीं। इंटरव्यूअर अक्सर इससे जुड़े सवालों में चले जाते हैं कि आप WHERE में column का alias क्यों नहीं इस्तेमाल कर सकते, या गलत clause में लगा filter नंबर क्यों बदल देता है, और दोनों उसी अंदरूनी execution क्रम से आते हैं।

अपना जवाब कैसे स्ट्रक्चर करें

  • जवाब को execution के तार्किक क्रम पर टिकाएं।
  • नियम दें: कच्चे column WHERE में, aggregate HAVING में।
  • जल्दी filter लगाने की परफॉर्मेंस वाली वजह समझाएं।
  • उसी क्रम के नतीजे के तौर पर alias के दिखने का जिक्र करें।

उदाहरण जवाब

बोला हुआ उदाहरण, पहले व्यक्ति में

बात इस पर आती है कि हर clause कब चलता है। WHERE grouping से पहले चलता है, तो वह अलग अलग पंक्तियों पर filter लगाता है। HAVING बाद में चलता है, तो वह aggregate हो चुके समूहों पर filter लगाता है। अगर मुझे इस साल के order चाहिए, तो वह WHERE है। अगर मुझे सिर्फ वे ग्राहक चाहिए जिनके पांच से ज्यादा order हैं, तो वह HAVING ही होना है, क्योंकि WHERE के वक्त तक वह count मौजूद ही नहीं होती। मैं filter को हमेशा जितना हो सके WHERE में धकेलता हूं, क्योंकि एक करोड़ के बजाय दस हजार पंक्तियों की grouping किसी बड़ी table पर सचमुच फर्क डालती है। यही execution क्रम उस चीज को भी समझाता है जो लोगों को अटकाती है: आप WHERE में SELECT का alias इस्तेमाल नहीं कर सकते, क्योंकि SELECT की सूची filter के बाद आंकी जाती है, हालांकि ज्यादातर engine आपको GROUP BY और ORDER BY में alias इस्तेमाल करने देंगे, जो क्रम पता होने तक विरोधाभासी लगता है। और जो बग मुझे सचमुच ठीक करना पड़ा वह HAVING में लगा एक date filter था, जो गलत अवधि पर सही दिखते हुए total बना रहा था।

जल्दी ही यह इंटरव्यू देने जा रहे हैं? GhostPilot आपकी लाइव कॉल सुनता है, सवाल पूछे जाते ही उसे पकड़ लेता है, और रियल-टाइम में एक स्ट्रक्चर्ड जवाब आपकी स्क्रीन पर डाल देता है। अगले मॉक में इसे आजमाएं, या ले लें एक $29 Session Pass, कोई सब्सक्रिप्शन नहीं, असली इंटरव्यू के लिए।

देखें यह कैसे काम करता है

फॉलो-अप सवाल जिनकी उम्मीद रखें

  • आप WHERE clause में SELECT का alias क्यों नहीं इस्तेमाल कर सकते?
  • बिना HAVING के किसी aggregate पर filter आप कैसे लगाएंगे?
  • किसी SELECT statement में execution का तार्किक क्रम क्या है?

डेटा एनालिस्ट के और सवाल

आपका इंटरव्यूअर इसका अपना वर्ज़न पूछेगा। फ्री Question Predictor में अपना असली जॉब डिस्क्रिप्शन पेस्ट कीजिए और वो 20 सवाल पाइए जो उस रोल में सबसे ज्यादा पूछे जाने की संभावना है, साथ में यह भी कि हर सवाल असल में क्या टटोल रहा है।

मेरे सवाल प्रेडिक्ट करें

मुश्किल सवाल पूछे जाने से पहले उनकी रिहर्सल कीजिए

एक लाइव कोपायलट के साथ प्रैक्टिस कीजिए, फिर तैयार होकर अंदर जाइए। $29 Session Pass आपको इंटरव्यू पार करा देता है, न कोई सब्सक्रिप्शन, न कोई लॉक-इन।

GhostPilot पाएं