कई बार आपको MySQL में nth रैंक खोजने की आवश्यकता होती है। उदाहरण के लिए छात्रों की कक्षा में तीसरी रैंक पाएं। अंक के आधार पर छात्रों का स्थान। MySQL में nth रैंक खोजने के लिए, सबसे पहले हम Records को रैंक करेंगे। फिर हम MySQL में nth रैंक को फिल्टर करते हैं। यहां एक क्वेरी है जिसका आप उपयोग कर सकते हैं। बस तालिका का नाम बदलें स्कोर और कॉलम नाम आईडी, स्कोर।
बढ़ते मूल्य के आधार पर MySQL में nth रैंक खोजें
उदाहरण:
CREATE TABLE score (id int, score int); INSERT INTO scores VALUES (1, 35),(2, 10),(3,30),(4,22),(5,20),(6,18),(7,36); Scores: +----+------+ | id | score| +----+------+ | 1 | 35 | | 2 | 10 | | 3 | 30 | | 4 | 22 | | 5 | 20 | | 6 | 18 | | 7 | 36 | +----+------+
यहां हमें रैंक 3 . के साथ रिकॉर्ड मिलता है . निम्नलिखित क्वेरी बढ़ते स्कोर के आधार पर रिकॉर्ड को रैंक करती है। फिर यह 3 रैंक वाले रिकॉर्ड को फ़िल्टर करता है:
SELECT * from ( SELECT id,score, @curRank := @curRank + 1 AS rank FROM scores p, (SELECT @curRank := 0) r ORDER BY score) WHERE rank = 3;
(SELECT @curRank := 0)
भाग एक अलग SET कमांड की आवश्यकता के बिना चर आरंभीकरण की अनुमति देता है।
Result: +----+------+------+ | id | score| rank | +----+------+------+ | 5 | 20 | 3 | +----+------+------+ 1 row in set (0.0 sec)
घटते मान के आधार पर MySQL में nth रैंक खोजें
यदि आप अंकों के घटते क्रम के आधार पर MySQL में nth रैंक प्राप्त करना चाहते हैं तो बस क्वेरी में DESC कीवर्ड जोड़ें। यहां हमें रैंक 3 के साथ रिकॉर्ड मिलता है।
SELECT * from ( SELECT id,score, @curRank := @curRank + 1 AS rank FROM scores p, (SELECT @curRank := 0) r ORDER BY score DESC) WHERE rank=3;
परिणाम:
+----+------+------+ | id | score| rank | +----+------+------+ | 3 | 30 | 3 | +----+------+------+ 1 row in set (0.0 sec)
आप किसी भी प्रकार के मीट्रिक जैसे वेतन, कर्मचारी गणना आदि के लिए nth रैंक प्राप्त करने के लिए उपरोक्त विधियों को लागू कर सकते हैं।