कई बार आपको 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 मिनटों में डेटा को विज़ुअलाइज़ करना और रीयल-टाइम डैशबोर्ड में मॉनिटर करना आसान बनाता है। इसे आज ही आजमाएं!