Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MySQL

MySQL में सबक्वेरी से दूसरा सबसे बड़ा अंक प्राप्त करें

नेस्टेड सबक्वेरी के साथ दूसरा सर्वोच्च मान खोजना

सबसे बड़ा मान खोजने के बाद, उससे छोटा सबसे बड़ा मान दूसरा सर्वोच्च होता है। इसके लिए नेस्टेड MAX() सबक्वेरी का उपयोग करें।

टेबल और डेटा

mysql> CREATE TABLE DemoTable(
    Marks INT
);
Query OK, 0 rows affected (1.34 sec)
mysql> INSERT INTO DemoTable VALUES(78);
Query OK, 1 row affected (0.16 sec)
mysql> INSERT INTO DemoTable VALUES(88);
Query OK, 1 row affected (0.10 sec)
mysql> INSERT INTO DemoTable VALUES(67);
Query OK, 1 row affected (0.13 sec)
mysql> INSERT INTO DemoTable VALUES(76);
Query OK, 1 row affected (0.25 sec)
mysql> INSERT INTO DemoTable VALUES(98);
Query OK, 1 row affected (0.13 sec)
mysql> INSERT INTO DemoTable VALUES(86);
Query OK, 1 row affected (0.11 sec)
mysql> INSERT INTO DemoTable VALUES(89);
Query OK, 1 row affected (0.13 sec)
mysql> INSERT INTO DemoTable VALUES(99);
Query OK, 1 row affected (0.12 sec)

सभी रिकॉर्ड

mysql> SELECT * FROM DemoTable;
+-------+
| Marks |
+-------+
| 78    |
| 88    |
| 67    |
| 76    |
| 98    |
| 86    |
| 89    |
| 99    |
+-------+
8 rows in set (0.00 sec)

दूसरा सबसे बड़ा अंक प्राप्त करने की क्वेरी

mysql> SELECT Marks FROM DemoTable 
    WHERE Marks = (
        SELECT MAX(Marks) FROM DemoTable 
        WHERE Marks < (SELECT MAX(Marks) FROM DemoTable)
    );

परिणाम:

+-------+
| Marks |
+-------+
| 98    |
+-------+
1 row in set (0.03 sec)

तर्क: आंतरिक सबक्वेरी MAX(Marks) = 99 देती है। मध्य सबक्वेरी 99 से छोटा अधिकतम = 98 देती है। बाहरी क्वेरी 99 वाली पंक्ति लौटाती है।

आधुनिक विकल्प (MySQL 8.0+): SELECT DISTINCT Marks FROM DemoTable ORDER BY Marks DESC LIMIT 1 OFFSET 1; अधिक पठनीय और कुशल है।

  1. Java के साथ MySQL डेटाबेस में टेबल से अंतिम रिकॉर्ड कैसे प्राप्त करें? Java के साथ MySQL डेटाबेस में टेबल से अंतिम रिकॉर्ड कैसे प्राप्त करें?

    MySQL डेटाबेस से डेटा प्राप्त करने के लिए, आपको Java से executeQuery() मेथड का उपयोग करना होगा। पहले MySQL डेटाबेस में एक टेबल बनाएं। यहां हम sample डेटाबेस में निम्नलिखित टेबल बनाएंगे: ); Query OK, 0 rows affected (0.80 sec) अब INSERT कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डाल सकते हैं। क्वेरी

  1. - MySQL में ORDER BY DESC LIMIT OFFSET से दूसरा अधिकतम मान ढूंढें

    MySQL में ORDER BY ... DESC LIMIT 1 OFFSET 1 का उपयोग करके दूसरा सबसे बड़ा मान (second maximum) प्राप्त कर सकते हैं। सिंटैक्स SELECT * FROM टेबल_नाम ORDER BY कॉलम_नाम DESC LIMIT 1 OFFSET 1; उदाहरण 1. टेबल बनाएं CREATE TABLE DemoTable (Value INT); 2. डेटा डालें INSERT INTO DemoTable VALUES(1),

  1. - MySQL में JOIN से दूसरी टेबल के ID द्वारा उपयोगकर्ता नाम कैसे प्राप्त करें?

    JOIN सिंटैक्स select username from table1 join table2 on table1.id = table2.fk_id; उदाहरण टेबल 1 (demo77): userid (PK), username insert into demo77 values(1,John), (2,Bob), (3,Mike); टेबल 2 (demo78): id (PK, FK→demo77), countryname insert into demo78 values(1,US), (2,AUS); JOIN क्वेरी और परिणा