सबक्वेरी का उपयोग करके उच्चतम औसत अंक खोजना
इसके लिए आप सबक्वेरी का उपयोग कर सकते हैं। आइए पहले एक टेबल बनाते हैं:
mysql> CREATE TABLE DemoTable (
StudentName VARCHAR(40),
StudentMarks INT
);
रिकॉर्ड्स इन्सर्ट करें:
mysql> INSERT INTO DemoTable VALUES ('Adam', 56);
mysql> INSERT INTO DemoTable VALUES ('Chris', 78);
mysql> INSERT INTO DemoTable VALUES ('Adam', 89);
mysql> INSERT INTO DemoTable VALUES ('Robert', 98);
mysql> INSERT INTO DemoTable VALUES ('Chris', 65);
mysql> INSERT INTO DemoTable VALUES ('Robert', 34);
सभी रिकॉर्ड्स देखें:
mysql> SELECT * FROM DemoTable;
आउटपुट:
+-------------+--------------+ | StudentName | StudentMarks | +-------------+--------------+ | Adam | 56 | | Chris | 78 | | Adam | 89 | | Robert | 98 | | Chris | 65 | | Robert | 34 | +-------------+--------------+
प्रत्येक छात्र के औसत अंक निकालकर केवल उच्चतम औसत प्रदर्शित करने के लिए क्वेरी:
mysql> SELECT MAX(avSal.StudentMarks)
FROM (
SELECT AVG(StudentMarks) AS StudentMarks
FROM DemoTable
GROUP BY StudentName
) AS avSal;
आउटपुट:
+-------------------------+ | MAX(avSal.StudentMarks) | +-------------------------+ | 72.5000 | +-------------------------+
व्याख्या:
- आंतरिक सबक्वेरी
GROUP BY StudentNameका उपयोग करके प्रत्येक छात्र के औसत अंक निकालती है:- Adam: (56 + 89) / 2 = 72.5
- Chris: (78 + 65) / 2 = 71.5
- Robert: (98 + 34) / 2 = 66
- बाहरी क्वेरी
MAX()फंक्शन का उपयोग करके इन औसतों में से उच्चतम (72.5) चुनती है।
नोट: यदि आप उस छात्र का नाम भी जानना चाहते हैं जिसका औसत सबसे अधिक है, तो आप इस क्वेरी को थोड़ा संशोधित कर सकते हैं।