उदाहरण के लिए:पोस्टग्रेस एसक्यूएल में कॉलम में मुझे सबसे बड़ा मूल्य कैसे मिल सकता है?
name | weight
jon 100
jane 120
joe 130
मैं कैसे केवल एक ही व्यक्ति के नाम पर सबसे बड़ा वजन के साथ वापसी करते हैं?
उदाहरण के लिए:पोस्टग्रेस एसक्यूएल में कॉलम में मुझे सबसे बड़ा मूल्य कैसे मिल सकता है?
name | weight
jon 100
jane 120
joe 130
मैं कैसे केवल एक ही व्यक्ति के नाम पर सबसे बड़ा वजन के साथ वापसी करते हैं?
इस का उपयोग करें:
select name
from tbl
where weight = (select max(weight) from tbl)
SELECT name FROM tbl ORDER BY weight DESC LIMIT 1
बहुत अन्य जवाब और एक पंक्ति में ही परिणामों की तुलना में अधिक performant।
अच्छा जवाब। मैं यह भी ध्यान रखना चाहता हूं कि यदि वजन में एक इंडेक्स है, तो इंडेक्स पर सॉर्ट किया जाएगा और तेज़ होगा। – bmlkc
अच्छा जवाब, हालांकि दो लोगों के समान वजन होने पर यह दो परिणाम नहीं लौटाएगा। – Stanislasdrg
LIMIT 1 को एक पूर्ण तालिका स्कैन की आवश्यकता है। यह बहुत सारी पंक्तियों के साथ _not_ प्रदर्शनकारी है। अपने प्रश्नों पर 'EXPLAIN' चलाने का प्रयास करें। – Volte
आदेश DESC द्वारा शीर्ष पर शून्य मान के साथ पंक्तियों डालता है।
शून्य मान करने के लिए इसी परिणाम देने से बचने के लिए:
SELECT name FROM tbl WHERE weight = (SELECT MAX(weight) FROM tbl);
नोट: कई लोगों को एक वजन अधिकतम वजन के बराबर है, तो यह प्रश्न कई परिणाम देगा। केवल एक को पकड़ने के लिए, क्वेरी के अंत में LIMIT 1
जोड़ें।
स्वीकृतियाँ और अधिक जानकारी:
Why do NULL values come first when ordering DESC in a PostgreSQL query?
वाह, कैसे मूर्ख मुझे एक नेस्टेड क्वेरी का उपयोग कर के बारे में सोचना नहीं! धन्यवाद! –
अधिकतम मूल्य के बराबर "वजन" के मूल्यों के साथ पंक्तियों की संख्या के आधार पर, यह एक से अधिक नाम लौटा सकता है। सिर्फ आपकी जानकारी के लिए। –
आप अधिकतम मूल्य वाले पंक्तियों में से केवल एक को कैसे लौटते हैं (इससे कोई फर्क नहीं पड़ता कि यह कैसे चुनता है)? –