समस्या:
आप यह जानना चाहते हैं कि कौन सी पंक्तियाँ किसी दिए गए कॉलम में सबसे बड़ा संख्यात्मक मान संग्रहीत करती हैं।
उदाहरण:
हमारे डेटाबेस में student
निम्नलिखित कॉलम में डेटा के साथ:id
, first_name
, last_name
, और grade
।
आईडी | <थ>पहला_नामlast_name | <थ>ग्रेड||
---|---|---|---|
1 | लिसा | जैक्सन | 3 |
2 | गैरी | लैरी | 5 |
3 | टॉम | मिशेलिन | 2 |
4 | मार्टिन | बार्कर | 2 |
5 | एली | काला | 5 |
6 | मैरी | सिम्पसन | 4 |
आइए उन छात्रों को खोजें जिनके पास उच्चतम ग्रेड हैं।
समाधान:
SELECT id, first_name, last_name, grade FROM student WHERE grade = (SELECT MAX(grade) FROM student);
ये रहा परिणाम:
आईडी | <थ>पहला_नामlast_name | <थ>ग्रेड||
---|---|---|---|
2 | गैरी | लैरी | 5 |
5 | एली | काला | 5 |
चर्चा:
किसी कॉलम का अधिकतम मान ज्ञात करने के लिए, MAX()
का उपयोग करें कुल कार्य; अधिकतम मूल्य खोजने के लिए कॉलम नाम या अभिव्यक्ति लेता है। हमारे उदाहरण में, सबक्वेरी कॉलम ग्रेड (सबक्वेरी:SELECT MAX(grade) FROM student
में सबसे ज्यादा नंबर देता है। ) मुख्य क्वेरी आईडी, प्रथम और अंतिम नाम, और उनके ग्रेड को प्रदर्शित करती है। कॉलम में सभी मानों के बीच केवल अधिकतम मान वाली पंक्तियों को प्रदर्शित करने के लिए (उदा., SELECT MAX(grade) FROM student
), एक सबक्वेरी के साथ WHERE का उपयोग करें। WHERE में, सबक्वेरी में एग्रीगेट फ़ंक्शन द्वारा लौटाए गए मान के तुलनीय मान वाले कॉलम का नाम डालें (हमारे उदाहरण में:WHERE grade = (SELECT MAX(grade) FROM student)
)।