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

MySQL में अलग-अलग रिकॉर्ड्स की गिनती को उसी पंक्ति में कैसे दिखाएं?

परिचय

MySQL में GROUP_CONCAT(), COUNT() और GROUP BY का उपयोग करके डुप्लिकेट मानों वाले समूहों की जानकारी एक ही पंक्ति में प्राप्त की जा सकती है।

उदाहरण: टेबल बनाना और डेटा डालना

mysql> CREATE TABLE DemoTable (
    -> CompanyId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> CompanyName VARCHAR(20)
    -> );
Query OK, 0 rows affected (0.62 sec)
mysql> INSERT INTO DemoTable(CompanyName) VALUES('Amazon');
Query OK, 1 row affected (0.14 sec)
mysql> INSERT INTO DemoTable(CompanyName) VALUES('Google');
Query OK, 1 row affected (0.09 sec)
mysql> INSERT INTO DemoTable(CompanyName) VALUES('Google');
Query OK, 1 row affected (0.07 sec)
mysql> INSERT INTO DemoTable(CompanyName) VALUES('Microsoft');
Query OK, 1 row affected (0.17 sec)
mysql> INSERT INTO DemoTable(CompanyName) VALUES('Amazon');
Query OK, 1 row affected (0.14 sec)
mysql> INSERT INTO DemoTable(CompanyName) VALUES('Amazon');
Query OK, 1 row affected (0.07 sec)

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

mysql> SELECT * FROM DemoTable;

आउटपुट:

+-----------+-------------+
| CompanyId | CompanyName |
+-----------+-------------+
| 1         | Amazon      |
| 2         | Google      |
| 3         | Google      |
| 4         | Microsoft   |
| 5         | Amazon      |
| 6         | Amazon      |
+-----------+-------------+
6 rows in set (0.00 sec)

डुप्लिकेट गिनती और ID सूची प्राप्त करने की क्वेरी

mysql> SELECT CompanyName,
    ->        GROUP_CONCAT(CompanyId),
    ->        COUNT(CompanyId) AS count
    -> FROM DemoTable
    -> GROUP BY CompanyName
    -> HAVING count > 1;

परिणाम

+-------------+-------------------------+-------+
| CompanyName | GROUP_CONCAT(CompanyId) | count |
+-------------+-------------------------+-------+
| Amazon      | 1,5,6                   | 3     |
| Google      | 2,3                     | 2     |
+-------------+-------------------------+-------+
2 rows in set (0.00 sec)

व्याख्या

  • GROUP BY CompanyName - समान कंपनी नाम वाली पंक्तियों को समूहित करता है
  • GROUP_CONCAT(CompanyId) - प्रत्येक समूह के ID को कॉमा से अलग करके जोड़ता है
  • COUNT(CompanyId) - प्रत्येक समूह में पंक्तियों की गिनती करता है
  • HAVING count > 1 - केवल डुप्लिकेट वाले समूह दिखाता है (गिनती > 1)

उपयोगी विकल्प

  • GROUP_CONCAT(CompanyId ORDER BY CompanyId) - क्रमबद्ध ID सूची
  • GROUP_CONCAT(CompanyId SEPARATOR ';') - कस्टम सेपरेटर
  • GROUP_CONCAT(DISTINCT CompanyId) - केवल अद्वितीय ID

यह तकनीक डुप्लिकेट विश्लेषण और रिपोर्टिंग के लिए बहुत उपयोगी है।

  1. - MySQL में डेट रिकॉर्ड से महीने का पहला और अंतिम दिन कैसे प्रदर्शित करें?

    आइए पहले एक टेबल बनाते हैं: mysql> create table DemoTable -> ( -> DueDate date -> ); Query OK, 0 rows affected (0.73 sec) इन्सर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें: mysql> insert into DemoTable values(2019-01-11); Query OK, 1 row affected (0.08 sec) mysql> insert into

  1. - MySQL में CASE स्टेटमेंट का उपयोग करके Amount कॉलम से एक ही कीमत के दो अलग-अलग योग कैसे प्रदर्शित करें?

    इसके लिए आप CASE स्टेटमेंट का उपयोग कर सकते हैं। आइए पहले एक टेबल बनाते हैं: mysql> create table DemoTable1794 ( Amount int ); Query OK, 0 rows affected (0.00 sec) इन्सर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें: mysql> insert into DemoTable1794 values(100); Query OK, 1 row affecte

  1. - MySQL में DATE_ADD से तारीख में वर्ष जोड़ें

    UPDATE और DATE_ADD() से मौजूदा तारीखों में अंतराल जोड़ें मौजूदा तारीख कॉलम में वर्ष (या अन्य अंतराल) जोड़ने के लिए UPDATE के साथ DATE_ADD() का उपयोग करें। टेबल बनाएं और डेटा डालें: mysql> create table DemoTable1984 ( ShippingDate date ); Query OK, 0 rows affected (0.00 sec) mysql> insert into