मॉड्यूल पाठ (1/4)
परिचय और ओवर खंड
परिचय और ओवर क्लॉज
पिछले पाठों में हमने देखा कि डेटा एकत्र करने के लिए GROUP BY का उपयोग कैसे करें। हालाँकि, GROUP BY की एक बड़ी सीमा है: यह पंक्तियों को संक्षिप्त कर देता है। यदि आप शहर के अनुसार समूह बनाते हैं, तो आपको प्रति शहर एक पंक्ति मिलती है और व्यक्तिगत ग्राहकों का विवरण खो जाता है।
यहीं पर विंडो फ़ंक्शंस चलन में आते हैं। वे आपको मूल पंक्तियों को बनाए रखते हुए समग्र गणनाएँ (जैसे कि योग या औसत) चलाने देते हैं।
ओवर() खंड
जादुई कीवर्ड OVER() है। यह डेटाबेस को बताता है कि समग्र फ़ंक्शन (उदाहरण के लिए SUM, AVG, COUNT) को एक विंडो फ़ंक्शन के रूप में माना जाना चाहिए, जिसकी गणना पूरे परिणाम सेट (वैश्विक "विंडो") पर की जाती है, लेकिन इसे हर एक पंक्ति पर लागू किया जाता है और वापस किया जाता है।
SELECT
order_id,
total_amount,
AVG(total_amount) OVER() AS global_average
FROM orders;इस उदाहरण में, हम प्रत्येक व्यक्तिगत ऑर्डर रखते हैं, लेकिन प्रत्येक पंक्ति में सभी ऑर्डरों के औसत के साथ एक global_average कॉलम भी होता है। उदाहरण के लिए, यह मापने के लिए कि कोई ऑर्डर औसत से कितना भटकता है, बहुत उपयोगी है!
'उत्पाद' तालिका से 'मूल्य' कॉलम चुनें। 'ग्लोबल_मैक्स_प्राइस' नामक एक कॉलम जोड़ें जिसमें संपूर्ण तालिका में विंडो फ़ंक्शन के साथ गणना की गई अधिकतम कीमत शामिल हो।
संकेत दिखाएँ
MAX(कीमत) को OVER() के साथ मिलाकर उपयोग करें।
3 प्रयासों के बाद समाधान उपलब्ध है
'आईडी', 'कीमत' निकालें और 'उत्पाद' तालिका से कुल औसत कीमत ('ग्लोबल_एवीजी') जोड़ें।
संकेत दिखाएँ
बस AVG(कीमत) OVER() जोड़ें।
3 प्रयासों के बाद समाधान उपलब्ध है