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

MySQL में GROUP BY का उपयोग करके डुप्लिकेट ID गिनना और परिणाम को अलग कॉलम में प्रदर्शित करना

MySQL में GROUP BY के साथ डुप्लिकेट ID गिनना

GROUP BY और एग्रीगेट फ़ंक्शन का उपयोग करके आप डुप्लिकेट ID की गिनती कर सकते हैं और परिणाम को एक अलग कॉलम में प्रदर्शित कर सकते हैं।

उदाहरण: ग्राहक समीक्षा गिनती

mysql> CREATE TABLE DemoTable1453 (
    -> CustomerId INT,
    -> CustomerReviewNumber INT
    -> );
Query OK, 0 rows affected (0.58 sec)

mysql> INSERT INTO DemoTable1453 VALUES
    -> (10,4), (10,4), (11,5), (11,5), (11,5),
    -> (13,2), (11,5), (10,4), (13,2);
Query OK, 9 rows affected (0.18 sec)

mysql> SELECT * FROM DemoTable1453;
+------------+----------------------+
| CustomerId | CustomerReviewNumber |
+------------+----------------------+
|         10 |                    4 |
|         10 |                    4 |
|         11 |                    5 |
|         11 |                    5 |
|         11 |                    5 |
|         13 |                    2 |
|         11 |                    5 |
|         10 |                    4 |
|         13 |                    2 |
+------------+----------------------+
9 rows in set (0.00 sec)

अद्वितीय समीक्षा संख्या प्रति ग्राहक गिनना

mysql> SELECT CustomerId, COUNT(DISTINCT CustomerReviewNumber)
    -> FROM DemoTable1453
    -> GROUP BY CustomerId;

परिणाम

+------------+--------------------------------------+
| CustomerId | count(distinct CustomerReviewNumber) |
+------------+--------------------------------------+
|         10 |                                    1 |
|         11 |                                    1 |
|         13 |                                    1 |
+------------+--------------------------------------+
3 rows in set (0.14 sec)

व्याख्या

  • ग्राहक 10: समीक्षा संख्या 4 (3 बार दोहराई गई) → 1 अद्वितीय
  • ग्राहक 11: समीक्षा संख्या 5 (4 बार दोहराई गई) → 1 अद्वितीय
  • ग्राहक 13: समीक्षा संख्या 2 (2 बार दोहराई गई) → 1 अद्वितीय

विविधताएं

-- कुल पंक्ति गिनती (डुप्लिकेट सहित)
SELECT CustomerId, COUNT(*) AS TotalRows
FROM DemoTable1453
GROUP BY CustomerId;

-- कुल और अद्वितीय दोनों
SELECT CustomerId, 
       COUNT(*) AS TotalRows,
       COUNT(DISTINCT CustomerReviewNumber) AS UniqueReviews
FROM DemoTable1453
GROUP BY CustomerId;

-- HAVING के साथ फ़िल्टर (उदाहरण: 2+ अद्वितीय समीक्षा वाले ग्राहक)
SELECT CustomerId, COUNT(DISTINCT CustomerReviewNumber) AS UniqueReviews
FROM DemoTable1453
GROUP BY CustomerId
HAVING UniqueReviews >= 2;

प्रदर्शन टिप

(CustomerId, CustomerReviewNumber) पर एक संयुक्त इंडेक्स इस क्वेरी को तेज़ करता है।

  1. - MySQL में कॉलम मानों को अलग टेक्स्ट के साथ जोड़ें और एकल कॉलम में प्रदर्शित करें

    आइए पहले एक टेबल बनाते हैं: mysql> create table DemoTable -> ( -> Id int, -> Name varchar(20) -> ); Query OK, 0 rows affected (0.93 sec) इन्सर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें: mysql> insert into DemoTable values(101,Chris); Query OK, 1 row affected (0.25 sec) mysq

  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 में रिकॉर्ड घटनाओं की गिनती करके नए कॉलम में कैसे प्रदर्शित करें?

    MySQL में किसी कॉलम के मान की घटनाओं (occurrences) को गिनकर नए कॉलम के रूप में प्रदर्शित करने के लिए, COUNT(*) के साथ GROUP BY का उपयोग करें। यह डेटा वितरण विश्लेषण, डुप्लिकेट पहचान, और आवृत्ति रिपोर्टिंग के लिए मानक तरीका है। उदाहरण: Value कॉलम की घटनाएं गिनना डेमो टेबल बनाएं: mysql> CREATE T