दूसरा सबसे ऊंचा मान लाने के लिए ORDER BY DESC के साथ LIMIT 1,1 का उपयोग करें।
आइए पहले एक टेबल बनाते हैं:
mysql> create table DemoTable (
StudentScore int );
Query OK, 0 rows affected (0.56 sec)
इन्सर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें:
mysql> insert into DemoTable values(89); Query OK, 1 row affected (0.16 sec) mysql> insert into DemoTable values(69); Query OK, 1 row affected (0.10 sec) mysql> insert into DemoTable values(97); Query OK, 1 row affected (0.17 sec) mysql> insert into DemoTable values(99); Query OK, 1 row affected (0.12 sec)
सेलेक्ट स्टेटमेंट का उपयोग करके टेबल से सभी रिकॉर्ड प्रदर्शित करें:
mysql> select * from DemoTable;
यह निम्नलिखिक आउटपुट देगा:
+--------------+ | StudentScore | +--------------+ | 89 | | 69 | | 97 | | 99 | +--------------+ 4 rows in set (0.00 sec)
दूसरा सबसे ऊंचा मान प्राप्त करने की क्वेरी
mysql> select * from DemoTable order by StudentScore DESC limit 1,1;
यह निम्नलिखिक आउटपुट देगा:
+--------------+ | StudentScore | +--------------+ | 97 | +--------------+ 1 row in set (0.00 sec)
व्याख्या
ORDER BY StudentScore DESCअवरोही क्रम: 99, 97, 89, 69LIMIT 1,1ऑफसेट 1 (दूसरी पंक्ति), 1 पंक्ति लें → 97LIMIT offset, count: offset 0-आधारित हैLIMIT 0,1पहला (सबसे ऊंचा),LIMIT 1,1दूसरा, आदि
डुप्लिकेट मान होने पर
यदि स्कोर 99, 99, 97, 89 हों तो LIMIT 1,1 दूसरा 99 देगा।
अद्वितीय दूसरा सबसे ऊंचा मान
SELECT DISTINCT StudentScore FROM DemoTable ORDER BY StudentScore DESC LIMIT 1,1;
विंडो फ़ंक्शन (MySQL 8.0+)
SELECT StudentScore FROM ( SELECT StudentScore, DENSE_RANK() OVER (ORDER BY StudentScore DESC) as rnk FROM DemoTable ) t WHERE rnk = 2;