MySQL में COUNT(DISTINCT column) का उपयोग करके अद्वितीय मानों की संख्या गिनें।
सिंटैक्स
SELECT COUNT(DISTINCT yourColumnName) as anyVariableName FROM yourTableName;
उदाहरण
टेबल बनाना
mysql> create table DistinctDemo ( -> Name varchar(200) -> ); Query OK, 0 rows affected (0.58 sec)
डुप्लिकेट रिकॉर्ड डालना
mysql> insert into DistinctDemo values('John');
mysql> insert into DistinctDemo values('Sam');
mysql> insert into DistinctDemo values('John'); -- डुप्लिकेट
mysql> insert into DistinctDemo values('Johnson');
mysql> insert into DistinctDemo values('John'); -- डुप्लिकेट
mysql> insert into DistinctDemo values('Johnson'); -- डुप्लिकेट
mysql> insert into DistinctDemo values('Sam'); -- डुप्लिकेट
mysql> insert into DistinctDemo values('Johnson'); -- डुप्लिकेट
सभी रिकॉर्ड देखना
mysql> select *from DistinctDemo;
+---------+ | Name | +---------+ | John | | Sam | | John | | Johnson | | John | | Johnson | | Sam | | Johnson | +---------+
अद्वितीय मान गिनना
mysql> select count(distinct Name) as DistinctValues from DistinctDemo;
+----------------+ | DistinctValues | +----------------+ | 3 | +----------------+
व्याख्या
टेबल में 8 पंक्तियां हैं लेकिन केवल 3 अद्वितीय नाम: John, Sam, Johnson।
अन्य उपयोगी पैटर्न
-- अद्वितीय मानों की सूची भी देखना SELECT DISTINCT Name FROM DistinctDemo; -- प्रत्येक अद्वितीय मान की गिनती के साथ SELECT Name, COUNT(*) as frequency FROM DistinctDemo GROUP BY Name ORDER BY frequency DESC; -- एकाधिक कॉलम पर अद्वितीय संयोजन गिनना SELECT COUNT(DISTINCT CONCAT(col1, '|', col2)) FROM table_name; -- या MySQL 8.0+ में SELECT COUNT(*) FROM (SELECT DISTINCT col1, col2 FROM table_name) t;
प्रदर्शन टिप
- बड़े टेबल पर
COUNT(DISTINCT ...)धीमा हो सकता है - कॉलम पर इंडेक्स बनाने से प्रदर्शन सुधरता है
- अनुमानित गिनती के लिए
APPROX_COUNT_DISTINCT()(MySQL 8.0.13+) उपयोग करें