Oracle SQL: एक कॉलम में शीर्ष 5 उच्चतम मान कैसे प्राप्त करें
डेटाबेस प्रश्नों में, परिणामों को विशिष्ट विशेषताओं वाली पंक्तियों तक सीमित करना अक्सर आवश्यक होता है, जैसे किसी विशिष्ट कॉलम में उच्चतम या निम्नतम मान। Oracle SQL में, आप इस उद्देश्य के लिए RANK(), DENSE_RANK(), या ROW_NUMBER() जैसे विश्लेषणात्मक फ़ंक्शंस का उपयोग कर सकते हैं।
उच्चतम मूल्यों के लिए RANK() और DENSE_RANK()
RANK() और DENSE_RANK() जैसे विश्लेषण फ़ंक्शन एक निर्दिष्ट रैंकिंग के आधार पर प्रत्येक पंक्ति को एक रैंक प्रदान करते हैं। किसी कॉलम में शीर्ष 5 उच्चतम मान पुनर्प्राप्त करने के लिए, आप निम्न क्वेरी प्रारूप का उपयोग कर सकते हैं:
SELECT *
FROM (
SELECT , RANK() OVER (ORDER BY DESC) AS rnk
FROM
)
WHERE rnk
RANK() प्रत्येक पंक्ति को 1 से शुरू करके एक संख्यात्मक रैंक प्रदान करता है, जो उच्चतम मान है। DENSE_RANK() रैंक निर्दिष्ट करते समय समान मान मौजूद होने पर अंतराल को संपीड़ित करता है।
ROW_NUMBER() पंक्तियों की एक विशिष्ट संख्या के लिए
ROW_NUMBER() विश्लेषणात्मक फ़ंक्शन प्रत्येक पंक्ति को एक क्रमांक निर्दिष्ट करता है। आप इसका उपयोग पंक्तियों की विशिष्ट संख्या को पुनः प्राप्त करने के लिए कर सकते हैं, भले ही उनका मूल्य कुछ भी हो। उदाहरण के लिए:
SELECT *
FROM (
SELECT , ROW_NUMBER() OVER (ORDER BY DESC) AS rnk
FROM
)
WHERE rnk
गैर-विश्लेषणात्मक समाधान: ROWNUM का उपयोग करें
हालाँकि कम आम है, आप परिणामों को पंक्तियों की एक विशिष्ट संख्या तक सीमित करने के लिए ROWNUM छद्म कॉलम का भी उपयोग कर सकते हैं। हालाँकि, इसका उपयोग सावधानी से किया जाना चाहिए क्योंकि ROWNUM का मूल्यांकन ORDER BY क्लॉज से पहले किया जाता है, जिससे अप्रत्याशित परिणाम हो सकते हैं।
उदाहरण: उच्चतम वेतन पाने वाला कर्मचारी प्राप्त करें
शीर्ष 5 उच्चतम वेतन पाने वाले कर्मचारियों को पुनः प्राप्त करते समय RANK() और DENSE_RANK() के उपयोग को स्पष्ट करने के लिए:
SELECT *
FROM (
SELECT empno, sal, RANK() OVER (ORDER BY sal DESC) AS rnk
FROM emp
)
WHERE rnk
यह क्वेरी प्रत्येक कर्मचारी को उनके वेतन के आधार पर एक संख्यात्मक रैंक प्रदान करती है, जहां 1 सबसे अधिक वेतन पाने वाले कर्मचारी का प्रतिनिधित्व करता है। इसके बाद यह घटते वेतन के क्रम में शीर्ष 5 कर्मचारियों को प्रदर्शित करता है।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3