निम्नलिखित सबसे सरल संभव उदाहरण है, हालांकि किसी भी समाधान को बड़े पैमाने पर करने में सक्षम होना चाहिए, हालांकि कई शीर्ष परिणाम आवश्यक हैं:
नीचे दी गई तालिका की तरह, व्यक्ति, समूह और आयु कॉलम के साथ, आपको प्रत्येक समूह में 2 सबसे पुराने लोग कैसे मिलेंगे ? (समूहों के भीतर संबंधों में अधिक परिणाम नहीं होने चाहिए, लेकिन वर्णमाला क्रम में पहले 2 दें)
+ -------- + ------- + ----- + | व्यक्ति | समूह | आयु | + -------- + ------- + ----- + | बॉब | 1 | 32 | | जिल | 1 | 34 | | शॉन | 1 | 42 | | जेक | 2 | 29 | | पॉल | 2 | 36 | | लौरा | 2 | 39 | + -------- + ------- + ----- +
वांछित परिणाम सेट:
+ -------- + ------- + ----- + | शॉन | 1 | 42 | | जिल | 1 | 34 | | लौरा | 2 | 39 | | पॉल | 2 | 36 | + -------- + ------- + ----- +
नोट: यह प्रश्न पिछले एक पर बनाता है- समूहीकृत SQL परिणामों के प्रत्येक समूह के लिए अधिकतम मूल्य के साथ रिकॉर्ड प्राप्त करें - प्रत्येक समूह से एक एकल शीर्ष पंक्ति प्राप्त करने के लिए, और जिसे @Bohemian से एक महान MySQL-विशिष्ट उत्तर मिला:
select *
from (select * from mytable order by `Group`, Age desc, Person) x
group by `Group`
हालांकि, मैं यह नहीं देख पाऊंगा कि मैं इसे कैसे बना सकता हूं।