प्रत्येक समूह से शीर्ष 2 पंक्तियों का चयन करने के लिए, सबक्वेरी के साथ जहां स्थिति का उपयोग करें। आइए एक टेबल बनाएं। तालिका बनाने की क्वेरी इस प्रकार है:
mysql> तालिका बनाएं SelectTop2FromEachGroup -> ( -> Name varchar(20), -> TotalScores int -> );Query OK, 0 पंक्तियाँ प्रभावित (0.80 सेकंड)
अब इंसर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें। क्वेरी इस प्रकार है:
mysql> SelectTop2FromEachGroup मान ('जॉन', 32) में डालें; क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.38 सेकंड) mysql> selectTop2FromEachGroup मान ('जॉन', 33) में डालें; क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.21 सेकंड) )mysql> SelectTop2FromEachGroup मान ('जॉन', 34) में डालें; क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.17 सेकंड) mysql> selectTop2FromEachGroup मान ('कैरोल', 35) में डालें; क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.17 सेकंड) mysql> SelectTop2FromEachGroup मानों ('कैरोल', 36) में डालें; क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.14 सेकंड) mysql> selectTop2FromEachGroup मान ('कैरोल', 37) में डालें; क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.15 सेकंड)
चयन कथन का उपयोग करके तालिका से सभी रिकॉर्ड प्रदर्शित करें। क्वेरी इस प्रकार है:
mysql> selectTop2FromEachGroup से *चुनें;
निम्न आउटपुट है:
<पूर्व>+----------+----------------+| नाम | टोटलस्कोर |+----------+---------------+| जॉन | 32 || जॉन | 33 || जॉन | 34 || कैरल | 35 || कैरल | 36 || कैरल | 37 |+----------+---------------+6 पंक्तियों में सेट (0.00 सेकंड)यहां स्थिति और सबक्वेरी का उपयोग करके प्रत्येक समूह से शीर्ष 2 पंक्तियों का चयन करने की क्वेरी दी गई है:
mysql> SelectTop2FromEachGroup tbl से * चुनें -> कहां -> ( -> COUNT(*) चुनें -> SelectTop2FromEachGroup tbl1 से -> जहां tbl1.Name =tbl.Name और -> tbl1.TotalScores>=tbl.TotalScores -> ) <=2;
निम्न आउटपुट है:
<पूर्व>+----------+----------------+| नाम | टोटलस्कोर |+----------+---------------+| जॉन | 33 || जॉन | 34 || कैरल | 36 || कैरल | 37 |+----------+---------------+4 पंक्तियों में सेट (0.06 सेकंड)