Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

MySQL में अधिकतम मूल्य के साथ रिकॉर्ड कैसे प्राप्त करें

कई बार आपको SQL में अधिकतम कॉलम मान वाली पंक्तियों का चयन करने की आवश्यकता हो सकती है। चूंकि इसके लिए कोई अंतर्निहित फ़ंक्शन नहीं है, इसलिए आपको SQL क्वेरी का उपयोग करके अधिकतम मान वाले रिकॉर्ड प्राप्त करने की आवश्यकता है। यहां बताया गया है कि MySQL में अधिकतम मान के साथ रिकॉर्ड कैसे प्राप्त करें। आप इसका उपयोग PostgreSQL, SQL सर्वर में अधिकतम मान वाली पंक्तियाँ प्राप्त करने के लिए भी कर सकते हैं।

MySQL में अधिकतम मान के साथ रिकॉर्ड कैसे प्राप्त करें

MySQL में अधिकतम मान के साथ रिकॉर्ड प्राप्त करने के चरण यहां दिए गए हैं।

मान लें कि आपके पास निम्न तालिका है बिक्री(order_date,sale) जिसमें दैनिक बिक्री डेटा होता है।

mysql> create table sales(order_date date,sale int, orders int);

mysql> insert into sales(order_date,sale,orders) values('2020-05-29', 300, 10),
     ('2020-05-30',250, 15),( '2020-05-31', 250, 12),( '2020-06-01',250, 14),
     ('2020-06-02',150,20),('2020-06-03',300,21),('2020-06-04',200,15),
     ('2020-06-05',200,17),('2020-06-06',250,12),('2020-06-07',150,15),
     ('2020-06-08',300,12),('2020-06-09',200,18);

mysql> select * from sales;
+------------+------+--------+
| order_date | sale | orders |
+------------+------+--------+
| 2020-05-29 |  300 |     10 |
| 2020-05-30 |  250 |     15 |
| 2020-05-31 |  250 |     12 |
| 2020-06-01 |  250 |     14 |
| 2020-06-02 |  150 |     20 |
| 2020-06-03 |  300 |     21 |
| 2020-06-04 |  200 |     15 |
| 2020-06-05 |  200 |     17 |
| 2020-06-06 |  250 |     12 |
| 2020-06-07 |  150 |     15 |
| 2020-06-08 |  300 |     12 |
| 2020-06-09 |  200 |     18 |
+------------+------+--------+

SQL में अधिकतम कॉलम मान वाली पंक्तियों का चयन करने के दो तरीके हैं। हम उन दोनों को देखेंगे।

बोनस पढ़ें :MySQL में पिछले 12 महीनों का डेटा कैसे प्राप्त करें

SQL सबक्वेरी का उपयोग करके अधिकतम मान के साथ रिकॉर्ड कैसे प्राप्त करें

अधिकतम बिक्री . के साथ पंक्तियां प्राप्त करने के लिए यहां SQL क्वेरी है SQL सबक्वेरी का उपयोग करके मान।

mysql> select * from sales where sale=(select max(sale) from sales);
+------------+------+--------+
| order_date | sale | orders |
+------------+------+--------+
| 2020-05-29 |  300 |     10 |
| 2020-06-03 |  300 |     21 |
| 2020-06-08 |  300 |     12 |
+------------+------+--------+

उपरोक्त क्वेरी में, हम सबसे पहले सबक्वेरी में तालिका के लिए अधिकतम मान का चयन करते हैं (बोल्ड . में) ) फिर हम मूल बिक्री तालिका से उन पंक्तियों का चयन करते हैं जहां बिक्री कॉलम मान अधिकतम मूल्य है। बड़ी तालिकाओं के लिए, आप बिक्री . को अनुक्रमित करके क्वेरी प्रदर्शन में सुधार कर सकते हैं कॉलम।

यदि आप विशिष्ट परिस्थितियों के अनुसार डेटा फ़िल्टर करना चाहते हैं, तो नीचे दिखाए गए अनुसार अपनी सबक्वेरी में WHERE क्लॉज जोड़ें।

mysql> select * from sales 
       where sale=(
          select max(sale) from sales
          WHERE <condition>
        );

बोनस पढ़ें :MySQL में व्यू कैसे अपडेट करें

हर ग्रुप के लिए अधिकतम मान के साथ रिकॉर्ड कैसे प्राप्त करें

यहाँ MySQL में GROUP BY का उपयोग करके अधिकतम मान वाली पंक्ति प्राप्त करने के चरण दिए गए हैं।

मान लें कि आपके पास एक टेबल है product_sales(product, order_date,sale) जिसमें कई उत्पादों के लिए बिक्री डेटा शामिल है। और आप प्रत्येक उत्पाद के लिए अधिकतम बिक्री मूल्य वाले रिकॉर्ड प्राप्त करना चाहते हैं।

mysql> create table product_sales(product varchar(255),order_date date, sale int);

mysql> insert into product_sales(product,order_date, sale)
     values('A','2020-05-01',250),
     ('B','2020-05-01',350),
     ('C','2020-05-01',1250),
     ('A','2020-05-02',450),
     ('B','2020-05-02',650),
     ('C','2020-05-02',1050),
     ('A','2020-05-03',150),
     ('B','2020-05-03',250),
     ('C','2020-05-03',1850);

mysql> select * from product_sales;
+---------+------------+------+
| product | order_date | sale |
+---------+------------+------+
| A       | 2020-05-01 |  250 |
| B       | 2020-05-01 |  350 |
| C       | 2020-05-01 | 1250 |
| A       | 2020-05-02 |  450 |
| B       | 2020-05-02 |  650 |
| C       | 2020-05-02 | 1050 |
| A       | 2020-05-03 |  150 |
| B       | 2020-05-03 |  250 |
| C       | 2020-05-03 | 1850 |
+---------+------------+------+

बोनस पढ़ें :MySQL में प्रति दिन संचयी कुल उपयोगकर्ता कैसे प्राप्त करें

प्रत्येक समूह, यानी प्रत्येक उत्पाद के लिए GROUP BY का उपयोग करके अधिकतम मूल्य के साथ रिकॉर्ड प्राप्त करने के लिए SQL क्वेरी यहां दी गई है।

mysql> select product_sales.* from product_sales,
      (select product,max(sale) as sale 
           from product_sales 
           group by product) max_sales 
        where product_sales.product=max_sales.product 
        and product_sales.sale=max_sales.sale;
+---------+------------+------+
| product | order_date | sale |
+---------+------------+------+
| A       | 2020-05-02 |  450 |
| B       | 2020-05-02 |  650 |
| C       | 2020-05-03 | 1850 |
+---------+------------+------+

उपरोक्त क्वेरी में, हम पहले नेस्टेड सबक्वेरी का उपयोग करके प्रत्येक उत्पाद के लिए अधिकतम बिक्री मूल्य की गणना करते हैं (बोल्ड में) ), और फिर मूल product_sales . के साथ परिणाम में शामिल हों उत्पाद और बिक्री कॉलम पर आधारित तालिका।

उम्मीद है, आप अपनी तालिकाओं के लिए अधिकतम स्तंभ मान वाली पंक्तियाँ प्राप्त कर सकते हैं।

Ubiq मिनटों में डेटा को विज़ुअलाइज़ करना और रीयल-टाइम डैशबोर्ड में मॉनिटर करना आसान बनाता है। इसे आज ही आजमाएं!

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL डेटाबेस का उपयोग करना सीखें

  2. MySQL के लिए Percona सर्वर की निगरानी - प्रमुख मेट्रिक्स

  3. मैं MySQL में 'अगर मौजूद नहीं है तो डालें' कैसे कर सकता हूं?

  4. MySQL में तारीखों के बीच महीनों का अंतर

  5. एक स्टैंड-अलोन पूर्ण-पाठ खोज सर्वर चुनना:Sphinx या SOLR?