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

MySQL में GROUP BY और MIN() से डुप्लिकेट कॉलम मान वाले समूह का न्यूनतम मान प्राप्त करें

किसी कॉलम (जैसे Class) के डुप्लिकेट मान वाले समूहों में से दूसरे कॉलम (जैसे Amount) का न्यूनतम मान प्राप्त करने के लिए GROUP BY और MIN() एग्रीगेट फ़ंक्शन का उपयोग करें।

टेबल बनाएं

mysql> CREATE TABLE DemoTable1875 (
    Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    Class VARCHAR(20),
    Amount INT
);

डेटा डालें

mysql> INSERT INTO DemoTable1875(Class, Amount) VALUES('X', 750), ('X', 140), ('X', 450), ('Y', 6780), ('Z', 1350), ('Z', 2050);

प्रति क्लास न्यूनतम Amount

mysql> SELECT Class, MIN(Amount) FROM DemoTable1875 GROUP BY Class;

आउटपुट:

+-------+-------------+
| Class | MIN(Amount) |
+-------+-------------+
| X     |         140 |
| Y     |        6780 |
| Z     |        1350 |
+-------+-------------+

व्याख्या

  • GROUP BY Class → X, Y, Z तीन समूह।
  • MIN(Amount) → प्रत्येक समूह में न्यूनतम Amount।

अन्य एग्रीगेट फ़ंक्शन

फ़ंक्शनउद्देश्य
MAX()अधिकतम मान
SUM()कुल योग
AVG()औसत
COUNT()पंक्ति गणना

पूरी पंक्ति प्राप्त करें (न्यूनतम Amount वाली)

SELECT t1.* FROM DemoTable1875 t1
JOIN (
    SELECT Class, MIN(Amount) AS MinAmt FROM DemoTable1875 GROUP BY Class
) t2 ON t1.Class = t2.Class AND t1.Amount = t2.MinAmt;

नोट

  • यदि न्यूनतम मान एक से अधिक पंक्तियों में है, तो सभी लौटाई जाएंगी।
  • MySQL 8.0+ में ROW_NUMBER() OVER (PARTITION BY Class ORDER BY Amount) उपयोग कर सकते हैं।
  1. - MySQL में MIN() और GROUP BY से डुप्लिकेट कॉलम वाले समूह की पहली टाइमस्टैम्प तिथि प्राप्त करें

    किसी कॉलम (जैसे Value) के डुप्लिकेट मान वाले समूहों में से सबसे पहली (न्यूनतम) टाइमस्टैम्प प्राप्त करने के लिए MIN() एग्रीगेट फ़ंक्शन के साथ GROUP BY का उपयोग करें। टेबल बनाएं mysql> CREATE TABLE DemoTable1870 ( Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, Value INT, ShippingTimestamp

  1. - MySQL में डुप्लिकेट आईडी के लिए फ्लोटिंग कॉलम का न्यूनतम मान प्राप्त करें

    GROUP BY और MIN() से डुप्लिकेट आईडी समूह की न्यूनतम कीमत पाएं डुप्लिकेट आईडी वाले समूहों में फ्लोटिंग-पॉइंट कॉलम का न्यूनतम मान प्राप्त करने के लिए MIN() के साथ GROUP BY का उपयोग करें। टेबल बनाएं और डेटा डालें: mysql> create table DemoTable2005 ( Id int, Price float ); Query OK, 0 rows affected (

  1. - MySQL में मान 0 होने पर दूसरे कॉलम का मान कैसे चुनें?

    IF() फ़ंक्शन का उपयोग यदि किसी कॉलम का मान 0 है तो दूसरे कॉलम का मान लेने के लिए IF() फ़ंक्शन प्रयोग करें: select IF(yourColumnName1=0, yourColumnName2, yourColumnName1) as anyAliasName from yourTableName; टेबल बनाना और डेटा डालना insert into demo30(value,original_value) values(30,0); डेटा देखना