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

MySQL में DISTINCT मानों की गिनती कैसे करें?


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+) उपयोग करें

  1. - MySQL में COUNT() और IF() का एक साथ उपयोग करना

    MySQL में COUNT() और IF() को मिलाकर सशर्त गणना करना MySQL में आप COUNT() और IF() को मिलाकर विशिष्ट शर्तों को पूरा करने वाली पंक्तियों की गणना कर सकते हैं। व्यावहारिक उदाहरण तालिका बनाना CREATE TABLE DemoTable ( isValidUser BOOLEAN ); रिकॉर्ड डालना (1 = true, 0 = false) INSERT INTO DemoTable

  1. - MySQL में एक क्वेरी से शून्य, NULL और शून्य/NULL को छोड़कर विशिष्ट मान गिनें

    सशर्त SUM के साथ एकाधिक गणना एक साथ एक ही क्वेरी में NULL मानों की संख्या, शून्य मानों की संख्या, और शून्य/NULL को छोड़कर विशिष्ट मानों की संख्या गिनने के लिए सशर्त SUM() का उपयोग करें। टेबल और डेटा CREATE TABLE DemoTable( Value INT ); Query OK, 0 rows affected (1.35 sec) INSERT INTO DemoTab

  1. - MySQL में COUNT DISTINCT की धीमी प्रक्रिया को कैसे तेज़ करें?

    MySQL में COUNT(DISTINCT column) क्वेरी बड़े डेटासेट पर धीमी चल सकती है। इसे तेज़ करने का सबसे प्रभावी तरीका संबंधित कॉलम पर **इंडेक्स (Index)** बनाना है। इंडेक्स डेटाबेस को विशिष्ट मानों को तेज़ी से खोजने और गिनने में सक्षम बनाता है, बिना पूरी टेबल को स्कैन किए। उदाहरण: इंडेक्स के साथ COUNT DISTIN