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

MySQL में कॉलम से अद्वितीय रिकॉर्ड कैसे गिनें

GROUP BY और COUNT(DISTINCT) के साथ प्रति उपयोगकर्ता अद्वितीय संदेश गिनना

जब आपको प्रत्येक समूह के लिए एक कॉलम में अद्वितीय मान गिनने हों, तो GROUP BY के साथ COUNT(DISTINCT column) का उपयोग करें।

टेबल और डेटा

mysql> CREATE TABLE DemoTable (
    UserName VARCHAR(100),
    UserPostMessage TEXT
);
Query OK, 0 rows affected (0.54 sec)
mysql> INSERT INTO DemoTable VALUES('Chris','Hi');
Query OK, 1 row affected (0.09 sec)
mysql> INSERT INTO DemoTable VALUES('David','Hello');
Query OK, 1 row affected (0.11 sec)
mysql> INSERT INTO DemoTable VALUES('Chris','Awesome');
Query OK, 1 row affected (0.16 sec)
mysql> INSERT INTO DemoTable VALUES('Chris','Amazing');
Query OK, 1 row affected (0.17 sec)
mysql> INSERT INTO DemoTable VALUES('David','Nice Place');
Query OK, 1 row affected (0.11 sec)
mysql> INSERT INTO DemoTable VALUES('Chris','Amazing');
Query OK, 1 row affected (0.12 sec)

सभी रिकॉर्ड

mysql> SELECT * FROM DemoTable;
+----------+-----------------+
| UserName | UserPostMessage |
+----------+-----------------+
| Chris    | Hi              |
| David    | Hello           |
| Chris    | Awesome         |
| Chris    | Amazing         |
| David    | Nice Place      |
| Chris    | Amazing         |
+----------+-----------------+
6 rows in set (0.00 sec)

प्रति उपयोगकर्ता अद्वितीय संदेश गिनने की क्वेरी

mysql> SELECT UserName, COUNT(DISTINCT UserPostMessage) AS NumberOfMessagesPostByUser 
    FROM DemoTable GROUP BY UserName;

परिणाम:

+----------+----------------------------+
| UserName | NumberOfMessagesPostByUser |
+----------+----------------------------+
| Chris    | 3                          |
| David    | 2                          |
+----------+----------------------------+
2 rows in set (0.00 sec)

विश्लेषण: Chris के 4 संदेश हैं लेकिन 'Amazing' दोहराया गया है, इसलिए 3 अद्वितीय। David के 2 अद्वितीय संदेश हैं। GROUP BY UserName प्रत्येक उपयोगकर्ता के लिए अलग गणना करता है।

  1. - MySQL में डिस्टिंक्ट कॉलम की गिनती कैसे करें?

    इसके लिए आपको GROUP BY का उपयोग करना होगा। आइए पहले एक टेबल बनाते हैं: mysql> create table DemoTable    (    StudentFirstName varchar(20)    ); Query OK, 0 rows affected (0.74 sec) इन्सर्ट कमांड का उपयोग करके टेबल में रिकॉर्ड डालें: mysql> insert into DemoTable va

  1. - MySQL में डेटाइम कॉलम के सभी रिकॉर्ड से सेकंड कैसे घटाएँ?

    MySQL में INTERVAL से डेटाइम कॉलम से सेकंड घटाना डेटाइम कॉलम के सभी मानों से सेकंड घटाने के लिए INTERVAL कीवर्ड का उपयोग करें। टेबल बनाना और डेटा डालना mysql> CREATE TABLE DemoTable833 (ArrivalTime DATETIME); Query OK, 0 rows affected (0.79 sec) mysql> INSERT INTO DemoTable833 VALUES(2019-01-1

  1. - MySQL में 'FROM' को कॉलम नाम कैसे बनाएं?

    चूंकि FROM एक आरक्षित शब्द है, इसे कॉलम नाम मानने के लिए बैकटिक्स प्रतीक का उपयोग करें। हम अब FROM आरक्षित शब्द को बैकटिक से घेरकर एक टेबल बनाएंगे: mysql> create table DemoTable1810 ( `from` varchar(20) ); Query OK, 0 rows affected (0.00 sec) इन्सर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड