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

MySQL में सर्वाधिक राशि वाले सभी उत्पाद दिखाएं

सबक्वेरी में MAX() के साथ शीर्ष रिकॉर्ड प्राप्त करना

जब एकाधिक उत्पादों का समान अधिकतम मूल्य हो और आपको उन सभी को दिखाना हो, तो सबक्वेरी में MAX() का उपयोग करके फ़िल्टर करें।

टेबल और डेटा

mysql> CREATE TABLE DemoTable (
    ProductId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    ProductName VARCHAR(100),
    ProductAmount INT
);
Query OK, 0 rows affected (0.53 sec)
mysql> INSERT INTO DemoTable(ProductName,ProductAmount) VALUES('Product-1',60);
Query OK, 1 row affected (0.13 sec)
mysql> INSERT INTO DemoTable(ProductName,ProductAmount) VALUES('Product-2',40);
Query OK, 1 row affected (0.10 sec)
mysql> INSERT INTO DemoTable(ProductName,ProductAmount) VALUES('Product-3',75);
Query OK, 1 row affected (0.15 sec)
mysql> INSERT INTO DemoTable(ProductName,ProductAmount) VALUES('Product-4',50);
Query OK, 1 row affected (0.13 sec)
mysql> INSERT INTO DemoTable(ProductName,ProductAmount) VALUES('Product-5',75);
Query OK, 1 row affected (0.12 sec)

सभी रिकॉर्ड

mysql> SELECT * FROM DemoTable;
+-----------+-------------+---------------+
| ProductId | ProductName | ProductAmount |
+-----------+-------------+---------------+
| 1         | Product-1   | 60            |
| 2         | Product-2   | 40            |
| 3         | Product-3   | 75            |
| 4         | Product-4   | 50            |
| 5         | Product-5   | 75            |
+-----------+-------------+---------------+
5 rows in set (0.00 sec)

अधिकतम राशि वाले सभी उत्पाद

mysql> SELECT * FROM DemoTable 
    WHERE ProductAmount = (SELECT MAX(ProductAmount) FROM DemoTable);

परिणाम:

+-----------+-------------+---------------+
| ProductId | ProductName | ProductAmount |
+-----------+-------------+---------------+
| 3         | Product-3   | 75            |
| 5         | Product-5   | 75            |
+-----------+-------------+---------------+
2 rows in set (0.00 sec)

व्याख्या: सबक्वेरी MAX(ProductAmount) = 75 देती है। बाहरी क्वेरी 75 वाली सभी पंक्तियां लौटाती है। यह ORDER BY ... LIMIT 1 से बेहतर है जो केवल एक पंक्ति देता।

वैकल्पिक (MySQL 8.0+): SELECT * FROM DemoTable WHERE ProductAmount = (SELECT MAX(ProductAmount) FROM DemoTable); समान। या विंडो फंक्शन: SELECT * FROM (SELECT *, MAX(ProductAmount) OVER() AS max_amt FROM DemoTable) t WHERE ProductAmount = max_amt;

  1. - MySQL में केवल सबसे अधिक ID वाली पंक्ति कैसे प्रदर्शित करें?

    MySQL ORDER BY DESC LIMIT 1: उच्चतम ID वाली पंक्ति प्राप्त करना सबसे अधिक ID वाली पंक्ति प्राप्त करने के लिए ORDER BY Id DESC (अवरोही क्रम) के साथ LIMIT 1 का उपयोग करें। उदाहरण: उच्चतम ID वाला रिकॉर्ड टेबल बनाएं: CREATE TABLE DemoTable (Id INT, FirstName VARCHAR(50)); INSERT INTO DemoTable VALUES (

  1. - MySQL में एकल क्वेरी से टेबल के सभी कॉलम को विशिष्ट मान पर सेट करें

    MySQL में UPDATE स्टेटमेंट का उपयोग करके एक ही क्वेरी में किसी टेबल के एक या अधिक कॉलम को विशिष्ट मानों पर सेट किया जा सकता है। यह तब उपयोगी होता है जब किसी विशिष्ट पंक्ति (या पंक्तियों) के सभी फ़ील्ड को एक साथ अपडेट करना हो। सिंटैक्स UPDATE table_name SET column1 = value1, column2 = value2, colum

  1. - MySQL में NULL या नॉन-NULL मानों वाले टेबल के सभी फील्ड अपडेट करें

    आइए पहले एक टेबल बनाते हैं: mysql> create table DemoTable -> ( -> Id int, -> Name varchar(20) -> ); Query OK, 0 rows affected (0.58 sec) इन्सर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें: mysql> insert into DemoTable values(10,NULL); Query OK, 1 row affected (0.32 sec) mysql&