यह सवाल ज्यादातर इंटरव्यू के समय फ्रेशर्स या 1 साल के अनुभव वाले उम्मीदवारों से पूछा जाता है। यहां तक कि यह सवाल मुझसे कई बार पूछा गया था जब मैं वेब डेवलपमेंट के क्षेत्र में आया था।
इसलिए मैं आपको दूसरा या नौवां उच्चतम वेतन खोजने के कुछ संभावित तरीके दिखाने जा रहा हूं।
एक्सप के लिए:कर्मचारी तालिका (ET)
ईआईडी | कर्मचारी का नाम | वेतन |
---|---|---|
1 | कर्मचारी-1 | 20,000 |
2 | कर्मचारी-2 | 22,000 |
3 | कर्मचारी-3 | 21,000 |
4 | कर्मचारी-4 | 19,000 |
5 | कर्मचारी-5 | 21,000 |
1:- nth उच्चतम वेतन बिना किसी शर्त के कैसे खोजें
इस मामले में आप बहुत ही बुनियादी सीमा और sql की अधिकतम विधियों का उपयोग कर सकते हैं
SELECT DISTINCT(Salary) FROM ET ORDER BY Salary DESC LIMIT n-1,1
जहां n वह स्थिति है जिसकी आप तलाश कर रहे हैं
यदि n=2 क्वेरी बन जाएगी
SELECT DISTINCT(state_id) FROM crm_cities ORDER BY state_id DESC LIMIT 1,1
आउटपुट होगा:21,000
2:- सभी nth उच्चतम वेतन कैसे प्राप्त करें जहां शर्त है कि आपको सभी 2 सबसे अधिक वेतन पाने वाले कर्मचारियों को ढूंढना होगा।
इस मामले में आप sql की उप क्वेरी सुविधा का उपयोग कर सकते हैं।
SELECT Salary FROM ET WHERE Salary = (SELECT DISTINCT(Salary) FROM ET ORDER BY Salary DESC LIMIT n-1,1)
जहां n वह स्थिति है जिसकी आप तलाश कर रहे हैं
यदि n=2 क्वेरी बन जाएगी
SELECT Salary FROM ET WHERE Salary = (SELECT DISTINCT(Salary) FROM ET ORDER BY Salary DESC LIMIT 1,1)
आउटपुट होगा:21,000 , 21,000
3:- LIMIT शर्तों का उपयोग किए बिना दूसरा उच्चतम वेतन कैसे प्राप्त करें।
इस मामले में आप sql में NOT IN शर्तों का उपयोग कर सकते हैं
SELECT MAX(Salary) FROM ET WHERE Salary NOT IN (SELECT MAX(Salary) FROM ET)
आउटपुट होगा:21,000
4:- LIMIT और सब-क्वेरी का उपयोग किए बिना दूसरा उच्चतम वेतन कैसे प्राप्त करें
इस मामले में आप सेल्फ-जॉइन विधि का उपयोग कर सकते हैं
SELECT MAX( E1.Salary ) FROM ET E1, ET E2 WHERE E1.Salary < E2.Salary Output will be: 21,000
आशा है कि यह आपकी आवश्यकता के अनुसार सही उत्तर खोजने में आपकी सहायता करेगा..