डेटा साइंस साक्षात्कार के लिए आपको शीर्ष पांच SQL विंडो फ़ंक्शंस के बारे में पता होना चाहिए

स्रोत नोड: 1582448

डेटा साइंस साक्षात्कार के लिए आपको शीर्ष पांच SQL विंडो फ़ंक्शंस के बारे में पता होना चाहिए
 

SQL डेटा की दुनिया में सार्वभौमिक भाषा है और डेटा पेशेवर के रूप में सबसे महत्वपूर्ण कौशल है।

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

महान डेटा वैज्ञानिकों को अच्छे डेटा वैज्ञानिकों से जो अलग करता है, वह यह है कि महान डेटा वैज्ञानिक डेटा को उतना ही उलझा सकते हैं, जितना कि SQL की क्षमताएं अनुमति देती हैं। SQL की सभी पेशकशों का पूरी तरह से उपयोग करने में सक्षम होने का एक बड़ा हिस्सा यह जानना है कि विंडो फ़ंक्शंस का उपयोग कैसे करें।

इसके साथ ही, चलो इसमें गोता लगाएँ!

1. LEAD () और LAG () के साथ डेल्टा

 
किसी दिए गए मीट्रिक के लिए पिछली अवधि के साथ एक अवधि की तुलना करते समय LEAD () और LAG () का अधिकतर उपयोग किया जाता है। कुछ उदाहरण देने के लिए...

  • आप प्रत्येक वर्ष की बिक्री और पिछले वर्ष की बिक्री के बीच डेल्टा प्राप्त कर सकते हैं
  • आप महीने दर महीने आधार पर साइन-अप/रूपांतरण/वेबसाइट विज़िट की संख्या में डेल्टा प्राप्त कर सकते हैं
  • आप मासिक आधार पर उपयोगकर्ता मंथन की तुलना कर सकते हैं

उदाहरण:

निम्न क्वेरी से पता चलता है कि आप लागत में मासिक प्रतिशत परिवर्तन को कैसे क्वेरी कर सकते हैं

with monthly_costs as ( SELECT date , monthlycosts , LEAD(monthlycosts) OVER (ORDER BY date) as previousCosts FROM costs )SELECT date , (monthlycosts - previousCosts) / previousCosts * 100 AS costPercentChange FROM monthly_costs

2. SUM () या COUNT () के साथ संचयी रकम

 
रनिंग टोटल की गणना केवल एक विंडोज़ फ़ंक्शन के माध्यम से की जा सकती है जो SUM () या COUNT () से शुरू होती है। यह एक शक्तिशाली उपकरण है जब आप समय के साथ किसी विशेष मीट्रिक की वृद्धि दिखाना चाहते हैं। अधिक विशेष रूप से, यह निम्नलिखित परिस्थितियों में उपयोगी है:

  • समय के साथ कुल आय और लागत प्राप्त करें
  • प्रति उपयोगकर्ता कुल समय-व्यय-पर-ऐप प्राप्त करें
  • समय के साथ कुल रूपांतरण प्राप्त करें

उदाहरण:

निम्न उदाहरण दिखाता है कि आप मासिक लागतों का संचयी योग कॉलम कैसे शामिल कर सकते हैं:

SELECT date , monthlycosts , SUM(monthlycosts) OVER (ORDER BY date) as cumCosts FROM cost_table

3. एवीजी के साथ मूविंग एवरेज ()

 
AVG() विंडोज़ फ़ंक्शंस में वास्तव में शक्तिशाली है क्योंकि यह आपको गणना करने की अनुमति देता है मूविंग एवरेज अधिक समय तक।

मूविंग एवरेज अल्पावधि में मूल्यों का पूर्वानुमान लगाने का एक सरल, फिर भी प्रभावी तरीका है। वे ग्राफ पर अस्थिर वक्रों को सुचारू करने में भी बेहद उपयोगी होते हैं। आम तौर पर, चलती औसत का उपयोग सामान्य दिशा को मापने के लिए किया जाता है जहां चीजें चल रही हैं।

अधिक विशेष रूप से…

  • उनका उपयोग साप्ताहिक बिक्री की सामान्य प्रवृत्ति प्राप्त करने के लिए किया जा सकता है (क्या औसत समय के साथ बढ़ रहा है?) यह एक कंपनी के रूप में विकास का संकेत देगा।
  • इसी तरह उनका उपयोग साप्ताहिक रूपांतरणों या वेबसाइट विज़िट की सामान्य प्रवृत्ति प्राप्त करने के लिए किया जा सकता है।

उदाहरण:

निम्नलिखित क्वेरी रूपांतरणों के लिए 10-दिवसीय चलती औसत प्राप्त करने का एक उदाहरण है।

SELECT Date , dailyConversions , AVG(dailyConversions) OVER (ORDER BY Date ROWS 10 PRECEDING) AS 10_dayMovingAverage FROM conversions

4. ROW_NUMBER()

 
ROW_NUMBER() विशेष रूप से तब उपयोगी होता है जब आप पहला या अंतिम रिकॉर्ड प्राप्त करना चाहते हैं। उदाहरण के लिए, यदि आपके पास एक तालिका है कि जिम के सदस्य जिम में कब आए थे और आप जिम में आने वाले पहले दिन की तारीख प्राप्त करना चाहते हैं, तो आप ग्राहक द्वारा (नाम / आईडी) और खरीद तिथि के अनुसार ऑर्डर कर सकते हैं। फिर, पहली पंक्ति प्राप्त करने के लिए, आप पंक्तियों के लिए केवल एक के बराबर पंक्ति संख्या के साथ फ़िल्टर कर सकते हैं।

उदाहरण:

यह उदाहरण दिखाता है कि आप ROW_NUMBER() का उपयोग कैसे कर सकते हैं ताकि प्रत्येक सदस्य (उपयोगकर्ता) के आने की पहली तारीख प्राप्त हो सके।

with numbered_visits as ( SELECT memberId , visitDate , ROW_NUMBER() OVER (PARTITION BY customerId ORDER BY purchaseDate) as rowNumber FROM gym_visits )SELECT * FROM numbered_visits WHERE rowNumber = 1

संक्षेप में, यदि आपको कभी भी पहला या अंतिम रिकॉर्ड प्राप्त करने की आवश्यकता है, तो ROW_NUMBER() इसे प्राप्त करने का एक शानदार तरीका है।

5. DENSE_RANK() के साथ रिकॉर्ड रैंकिंग

 
DENSE_RANK() ROW_NUMBER() के समान है सिवाय इसके कि यह समान मान के लिए समान रैंक देता है। उदाहरण के लिए, जब शीर्ष रिकॉर्ड प्राप्त करने की बात आती है, तो सघन रैंकिंग काफी उपयोगी होती है:

  • यदि आप इस सप्ताह शीर्ष 10 सबसे अधिक देखे जाने वाले नेटफ्लिक्स शो को खींचना चाहते हैं
  • यदि आप खर्च किए गए डॉलर के आधार पर शीर्ष 100 उपयोगकर्ता प्राप्त करना चाहते हैं
  • यदि आप 1000 सबसे कम सक्रिय उपयोगकर्ताओं का व्यवहार देखना चाहते हैं

उदाहरण:

यदि आप अपने शीर्ष ग्राहकों को कुल बिक्री के आधार पर रैंक करना चाहते हैं, तो DENSE_RANK() उपयोग करने के लिए एक उपयुक्त कार्य होगा।

SELECT customerId , totalSales , DENSE_RANK() OVER (ORDER BY totalSales DESC) as rank FROM customers

पढ़ने के लिए शुक्रिया!

 
और बस यही! मुझे उम्मीद है कि यह आपके साक्षात्कार की तैयारी में आपकी मदद करता है - मुझे यकीन है कि यदि आप इन 5 अवधारणाओं को अंदर-बाहर जानते हैं, तो जब आप अधिकांश SQL विंडो फ़ंक्शन समस्याओं की बात करेंगे तो आप बहुत अच्छा करेंगे।

हमेशा की तरह, मैं आपके सीखने के प्रयासों में आपको शुभकामनाएं देता हूं!

 
 
टेरेंस शिन SQL में 3+ साल के अनुभव और Python में 2+ साल के अनुभव के साथ एक डेटा उत्साही है, और Towards Data Science and KDnuggets पर एक ब्लॉगर है।

मूल। अनुमति के साथ पुनर्प्रकाशित।

स्रोत: https://www.kdnuggets.com/2022/01/top-five-sql-window-functions-know-data-science-interviews.html

समय टिकट:

से अधिक केडनगेट्स