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

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

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

टेबल बनाएं

mysql> CREATE TABLE DemoTable1870 (
    Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    Value INT,
    ShippingTimestamp VARCHAR(100)
);

डेटा डालें (Unix टाइमस्टैम्प स्ट्रिंग के रूप में)

mysql> INSERT INTO DemoTable1870(Value, ShippingTimestamp) VALUES(10, '1570645800'), (10, '1546194600'), (11, '1573324200'), (11, '1557599400');

प्रति Value न्यूनतम टाइमस्टैम्प

mysql> SELECT MIN(ShippingTimestamp) FROM DemoTable1870 GROUP BY Value;

आउटपुट:

+------------------------+
| MIN(ShippingTimestamp) |
+------------------------+
| 1546194600             |
| 1557599400             |
+------------------------+

नोट: स्ट्रिंग तुलना

चूंकि ShippingTimestamp VARCHAR है, MIN() लेक्सिकोग्राफिक (स्ट्रिंग) तुलना करता है। यूनिक्स टाइमस्टैम्प के लिए यह ठीक काम करता है क्योंकि अंक लंबाई समान है।

बेहतर: BIGINT या TIMESTAMP कॉलम उपयोग करें

ALTER TABLE DemoTable1870 MODIFY ShippingTimestamp BIGINT;
-- या
ALTER TABLE DemoTable1870 MODIFY ShippingTimestamp TIMESTAMP;

पठनीय दिनांक में बदलें

SELECT FROM_UNIXTIME(MIN(ShippingTimestamp)) FROM DemoTable1870 GROUP BY Value;

संबंधित

  • MAX() - अंतिम/नवीनतम टाइमस्टैम्प।
  • GROUP_CONCAT() - सभी टाइमस्टैम्प सूची।
  • विंडो फ़ंक्शन: ROW_NUMBER() OVER (PARTITION BY Value ORDER BY ShippingTimestamp) (MySQL 8.0+)
  1. - MySQL में डुप्लिकेट आईडी के लिए फ्लोटिंग कॉलम का न्यूनतम मान प्राप्त करें

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

  1. - MySQL में कॉलम मान के पहले अक्षर को प्राप्त करके दूसरे कॉलम में डालें

    समाधान LEFT() फंक्शन का उपयोग करके पहले अक्षर को निकालें और UPDATE से दूसरे कॉलम में स्टोर करें। उदाहरण टेबल बनाएं: INSERT INTO DemoTable2036 (Title) VALUES (Chris), (John), (Adam); अपडेट क्वेरी UPDATE DemoTable2036 SET FirstLetter = LEFT(Title, 1); परिणाम +-------------+-------+ | FirstLetter

  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); डेटा देखना