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

MySQL में कॉलम के प्रत्येक विशिष्ट मान की गिनती कैसे प्राप्त करें?

GROUP BY और COUNT() का उपयोग करके प्रत्येक विशिष्ट मान की आवृत्ति गिन सकते हैं।

उदाहरण सेटअप

CREATE TABLE DistinctDemo1 (id INT, name VARCHAR(100));
INSERT INTO DistinctDemo1 VALUES 
(1,'John'), (2,'John'), (3,'John'), (4,'Carol'), (5,'David');

क्वेरी

SELECT name, COUNT(*) AS OccurrenceValue
FROM DistinctDemo1
GROUP BY name
ORDER BY OccurrenceValue DESC;

आउटपुट:

+-------+-----------------+
| name  | OccurrenceValue |
+-------+-----------------+
| John  | 3               |
| Carol | 1               |
| David | 1               |
+-------+-----------------+

विविधताएं

केवल डुप्लिकेट ढूंढें (गिनती > 1)

SELECT name, COUNT(*) AS cnt
FROM DistinctDemo1
GROUP BY name
HAVING COUNT(*) > 1;

प्रतिशत भी दिखाएं

SELECT name, 
    COUNT(*) AS cnt,
    ROUND(COUNT(*) * 100.0 / (SELECT COUNT(*) FROM DistinctDemo1), 2) AS percentage
FROM DistinctDemo1
GROUP BY name
ORDER BY cnt DESC;

एकाधिक कॉलम द्वारा ग्रुप

SELECT name, age, COUNT(*)
FROM users
GROUP BY name, age;

विंडो फंक्शन के साथ (MySQL 8.0+)

SELECT DISTINCT name,
    COUNT(*) OVER (PARTITION BY name) AS cnt
FROM DistinctDemo1;

प्रदर्शन टिप्स

  • GROUP BY कॉलम पर इंडेक्स बनाएं
  • बड़े टेबल पर COUNT(*) के बजाय COUNT(1) या COUNT(pk_column) समान प्रदर्शन
  • WHERE क्लॉज से पहले फ़िल्टर करें, फिर ग्रुप करें
  1. - MySQL में MAX() एग्रीगेट फंक्शन का उपयोग करके कॉलम का अधिकतम मान प्राप्त करें

    MySQL MAX() फंक्शन: कॉलम का अधिकतम मान खोजना MAX() एक एग्रीगेट फंक्शन है जो एक कॉलम में सबसे बड़ा मान लौटाता है। यह संख्याओं, तारीखों, और स्ट्रिंग्स (वर्णानुक्रम में अंतिम) पर काम करता है। उदाहरण: ID कॉलम का अधिकतम मान टेबल बनाएं और डेटा डालें: CREATE TABLE DemoTable (Id INT); INSERT INTO DemoTabl

  1. - MySQL कॉलम में प्रत्येक पंक्ति के समान मान की गिनती करें?

    प्रत्येक पंक्ति के समान मान की गिनती के लिए COUNT(*) का उपयोग GROUP BY क्लॉज के साथ करें। आइए पहले एक टेबल बनाते हैं: mysql> create table DemoTable1818 ( Id int, Name varchar(20) ); Query OK, 0 rows affected (0.00 sec) इन्सर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें: mysql> ins

  1. - MySQL में विशिष्ट मान वाले कॉलम की संख्या कैसे गिनें?

    SUM() के साथ गणना बाइनरी मान (0/1) वाले कॉलम के लिए: select sum(value1+value2+value3) as `Total_Number_Of_1`, sum(value1 and value2 and value3) as `Total_Number_Of_Rows_With_1` from yourTableName; उदाहरण insert into demo36(value1,value2,value3) values(1,0,0), (1,0,1), (1,1,1), (0,1,0), (