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

MySQL में उच्चतम मान वाले शीर्ष 3 रिकॉर्ड कैसे प्राप्त करें?

MySQL में ORDER BY ... DESC और LIMIT का उपयोग करके उच्चतम मान वाले शीर्ष N रिकॉर्ड प्राप्त किए जा सकते हैं।

सिंटैक्स

SELECT * FROM table_name
ORDER BY column_name DESC
LIMIT N;

उदाहरण

छात्र स्कोर तालिका:

mysql> CREATE TABLE DemoTable (
    -> StudentName VARCHAR(20), StudentScore INT
    -> );
mysql> INSERT INTO DemoTable VALUES 
    -> ('Adam', 65), ('Chris', 89), ('Bob', 58),
    -> ('Sam', 98), ('Mike', 87), ('Carol', 79);

डेटा

+-------------+--------------+
| StudentName | StudentScore |
+-------------+--------------+
| Adam        |           65 |
| Chris       |           89 |
| Bob         |           58 |
| Sam         |           98 |
| Mike        |           87 |
| Carol       |           79 |
+-------------+--------------+

शीर्ष 3 स्कोर

mysql> SELECT * FROM DemoTable
    -> ORDER BY StudentScore DESC
    ->> LIMIT 3;

परिणाम

+-------------+--------------+
| StudentName | StudentScore |
+-------------+--------------+
| Sam         |           98 |
| Chris       |           89 |
| Mike        |           87 |
+-------------+--------------+

विविधताएं

  • LIMIT 3 OFFSET 0 - पहला पृष्ठ (डिफ़ॉल्ट)
  • LIMIT 3 OFFSET 3 - दूसरा पृष्ठ (4-6 रैंक)
  • ORDER BY StudentScore DESC, StudentName ASC - टाई-ब्रेकर

टाई हैंडलिंग

यदि 3rd स्थान पर टाई है, तो LIMIT 3 मनमाने ढंग से एक चुनता है। सभी टाई प्राप्त करने के लिए:

SELECT * FROM DemoTable
WHERE StudentScore >= (
    SELECT StudentScore FROM DemoTable
    ORDER BY StudentScore DESC LIMIT 1 OFFSET 2
);

प्रदर्शन

  • StudentScore पर इंडेक्स क्वेरी को तेज़ करता है
  • LIMIT के साथ MySQL जल्दी रुक सकता है (ऑप्टिमाइज़ेशन)
  1. - MySQL में SELECT INTO वेरिएबल से विशिष्ट पंक्ति का एकल मान प्राप्त करें

    SELECT column INTO @variable FROM table WHERE condition का उपयोग करके एकल पंक्ति का एकल मान यूज़र-डिफ़ाइन्ड वेरिएबल में संग्रहीत करें। टेबल बनाएं mysql> CREATE TABLE DemoTable1896 ( StudentId INT NOT NULL AUTO_INCREMENT PRIMARY KEY, StudentName VARCHAR(20), StudentMarks INT ); डेटा

  1. - MySQL में एकाधिक टेबल्स से रिकॉर्ड इन्सर्ट कैसे करें?

    MySQL में दो या अधिक टेबल्स से डेटा संयोजित करके तीसरी टेबल में इन्सर्ट करने के लिए, INSERT INTO ... SELECT के साथ क्रॉस जॉइन (कॉमा सिंटैक्स) या स्पष्ट JOIN का उपयोग करें। यह कार्टेशियन प्रोडक्ट (सभी संयोजन) या मिलान वाले संयोजन बना सकता है। उदाहरण: Name और Age टेबल से Student टेबल में कार्टेशियन प

  1. - MySQL में GROUP BY और MAX का उपयोग करके समान नाम वाले छात्रों की अधिकतम आयु प्राप्त करें

    MySQL में GROUP BY और MAX() का उपयोग करके प्रति समूह अधिकतम मान खोजना जब आपके पास डुप्लिकेट नाम (या अन्य समूहन कॉलम) हों और आप प्रत्येक समूह के लिए अधिकतम मान खोजना चाहते हैं, तो GROUP BY के साथ MAX() एग्रीगेट फ़ंक्शन का उपयोग करें। टेबल बनाना ); Query OK, 0 rows affected (0.00 sec) डुप्लिकेट नाम