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

MySQL में DATE_FORMAT का उपयोग करके तिथि से महीना कॉलम बनाएं और डुप्लिकेट तिथियों का योग प्रदर्शित करें

तिथि से महीना निकालना और डुप्लिकेट तिथियों का योग करना

MySQL में DATE_FORMAT() फ़ंक्शन का उपयोग करके आप तिथि से महीना (या कोई भी प्रारूप) निकाल सकते हैं, और फिर GROUP BY के साथ डुप्लिकेट तिथियों/महीनों के लिए योग गणना कर सकते हैं।

टेबल बनाना

mysql> CREATE TABLE DemoTable (
    -> PurchaseDate DATE,
    -> Amount INT
    -> );
Query OK, 0 rows affected (0.52 sec)

डेटा डालना (डुप्लिकेट तिथियों के साथ)

mysql> INSERT INTO DemoTable VALUES ('2019-10-12', 500);
Query OK, 1 row affected (0.12 sec)
mysql> INSERT INTO DemoTable VALUES ('2018-10-12', 1000);
Query OK, 1 row affected (0.17 sec)
mysql> INSERT INTO DemoTable VALUES ('2019-01-10', 600);
Query OK, 1 row affected (0.12 sec)
mysql> INSERT INTO DemoTable VALUES ('2018-10-12', 600);  -- डुप्लिकेट तिथि
Query OK, 1 row affected (0.15 sec)
mysql> INSERT INTO DemoTable VALUES ('2018-11-10', 800);
Query OK, 1 row affected (0.18 sec)

सभी रिकॉर्ड्स देखना

mysql> SELECT * FROM DemoTable;
+--------------+--------+
| PurchaseDate | Amount |
+--------------+--------+
| 2019-10-12   |    500 |
| 2018-10-12   |   1000 |
| 2019-01-10   |    600 |
| 2018-10-12   |    600 |  -- डुप्लिकेट तिथि
| 2018-11-10   |    800 |
+--------------+--------+
5 rows in set (0.00 sec)

महीना निकालकर और वर्ष-महीना के अनुसार समूहित करके योग गणना

mysql> SELECT SUM(Amount) AS Amount, 
    -> DATE_FORMAT(PurchaseDate, '%b') AS Month 
    -> FROM DemoTable 
    -> GROUP BY DATE_FORMAT(PurchaseDate, '%Y-%m');

परिणाम

+--------+-------+
| Amount | Month |
+--------+-------+
|    500 | Oct   |
|   1600 | Oct   |  -- 2018-10-12 के दो रिकॉर्ड्स: 1000 + 600
|    600 | Jan   |
|    800 | Nov   |
+--------+-------+
4 rows in set (0.00 sec)

महत्वपूर्ण बिंदु

  • GROUP BY DATE_FORMAT(PurchaseDate, '%Y-%m'): वर्ष-महीना संयोजन द्वारा समूहित करता है (सिर्फ महीना नहीं, ताकि अलग-अलग वर्षों के समान महीने अलग रहें)
  • DATE_FORMAT(PurchaseDate, '%b'): संक्षिप्त महीना नाम लौटाता है (Jan, Feb, Mar, आदि)
  • SUM(Amount): प्रत्येक समूह के लिए राशि का योग

DATE_FORMAT प्रारूप निर्देशक

निर्देशकविवरणउदाहरण
%bसंक्षिप्त महीना नामJan, Feb, Mar
%Mपूर्ण महीना नामJanuary, February
%mमहीना संख्या (00-12)01, 12
%Y4-अंकीय वर्ष2024
%y2-अंकीय वर्ष24
%dमहीने का दिन (00-31)15

सुधारित क्वेरी (अधिक जानकारी के साथ)

SELECT 
    DATE_FORMAT(PurchaseDate, '%Y-%m') AS YearMonth,
    DATE_FORMAT(PurchaseDate, '%M %Y') AS MonthYear,
    COUNT(*) AS TransactionCount,
    SUM(Amount) AS TotalAmount,
    AVG(Amount) AS AvgAmount,
    MIN(Amount) AS MinAmount,
    MAX(Amount) AS MaxAmount
FROM DemoTable
GROUP BY DATE_FORMAT(PurchaseDate, '%Y-%m')
ORDER BY YearMonth DESC;

सामान्य गलती से बचें

-- गलत: केवल महीना द्वारा समूहित करना (वर्षों को मिला देगा)
GROUP BY DATE_FORMAT(PurchaseDate, '%m')

-- सही: वर्ष-महीना द्वारा समूहित करना
GROUP BY DATE_FORMAT(PurchaseDate, '%Y-%m')
-- या बेहतर:
GROUP BY YEAR(PurchaseDate), MONTH(PurchaseDate)
  1. - MySQL क्वेरी डुप्लिकेट टुपल्स खोजने और गिनती प्रदर्शित करने के लिए?

    डुप्लिकेट टुपल्स खोजने के लिए GROUP BY HAVING क्लॉज का उपयोग करें। आइए पहले एक टेबल बनाते हैं: mysql> create table DemoTable -> ( -> Id int, -> Name varchar(20) -> ); Query OK, 0 rows affected (0.80 sec) इन्सर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें: mysql> insert into De

  1. - MySQL में GROUP BY HAVING से डुप्लिकेट कॉलम मान खोजें और प्रदर्शित करें

    किसी कॉलम में डुप्लिकेट मान (एक से अधिक बार आने वाले) खोजने के लिए GROUP BY और 1 का उपयोग करें। टेबल बनाएं mysql> CREATE TABLE DemoTable1858 (ModelNumber VARCHAR(50)); डेटा डालें mysql> INSERT INTO DemoTable1858 VALUES(Audi A4), (Audi A6), (Audi A4), (Audi Q5), (Audi R8), (Audi Q5); डुप्लि

  1. - MySQL में GROUP_CONCAT और SUM का उपयोग करके कई पंक्तियों के स्ट्रिंग्स को संयोजित करें और ID का योग दिखाएं

    MySQL में GROUP_CONCAT और SUM के साथ पंक्तियों को एक पंक्ति में संयोजित करना MySQL का GROUP_CONCAT() फ़ंक्शन एक समूह के भीतर गैर-NULL मानों को एक स्ट्रिंग में जोड़ता है, और SUM() संख्यात्मक मानों को जोड़ता है। साथ में वे कई पंक्तियों को एक सारांश पंक्ति में संक्षिप्त करने की अनुमति देते हैं। टेबल ब