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

MySQL में कॉलम में मान की आवृत्ति (Count) गिनें: GROUP BY COUNT(*)

MySQL में COUNT() और GROUP BY से किसी कॉलम में प्रत्येक मान की घटनाएं गिनना

सिंटैक्स:

SELECT yourColumnName, COUNT(*) AS anyVariableName 
FROM yourTableName 
GROUP BY yourColumnName;

व्यावहारिक उदाहरण

1. टेबल बनाएं:

mysql> CREATE TABLE CountSameValue (
    -> Id INT,
    -> Name VARCHAR(100),
    -> Marks INT
    -> ); 
Query OK, 0 rows affected (0.70 sec)

2. डेटा डालें (कुछ डुप्लीकेट Marks के साथ):

mysql> INSERT INTO CountSameValue VALUES(1,'Sam',67);
mysql> INSERT INTO CountSameValue VALUES(2,'Mike',87);
mysql> INSERT INTO CountSameValue VALUES(3,'Carol',67);
mysql> INSERT INTO CountSameValue VALUES(4,'Bob',87);
mysql> INSERT INTO CountSameValue VALUES(5,'John',71);
mysql> INSERT INTO CountSameValue VALUES(6,'Adam',66);
mysql> INSERT INTO CountSameValue VALUES(7,'David',71);
mysql> INSERT INTO CountSameValue VALUES(8,'Maria',67);

3. सभी रिकॉर्ड:

+------+-------+-------+ 
| Id   | Name  | Marks | 
+------+-------+-------+ 
| 1    | Sam   | 67    | 
| 2    | Mike  | 87    | 
| 3    | Carol | 67    | 
| 4    | Bob   | 87    | 
| 5    | John  | 71    | 
| 6    | Adam  | 66    | 
| 7    | David | 71    | 
| 8    | Maria | 67    | 
+------+-------+-------+ 
8 rows in set (0.00 sec)

4. Marks कॉलम में प्रत्येक मान की गिनती:

mysql> SELECT Marks, COUNT(*) AS Total 
    -> FROM CountSameValue 
    -> GROUP BY Marks;
+-------+-------+ 
| Marks | Total | 
+-------+-------+ 
| 67    | 3     | 
| 87    | 2     | 
| 71    | 2     | 
| 66    | 1     | 
+-------+-------+ 
4 rows in set (0.00 sec)

उन्नत विविधताएं:

गिनती के अनुसार सॉर्ट करें (सबसे अधिक बार आने वाला पहले):

SELECT Marks, COUNT(*) AS Total 
FROM CountSameValue 
GROUP BY Marks 
ORDER BY Total DESC;

केवल डुप्लीकेट मान दिखाएं (गिनती > 1):

SELECT Marks, COUNT(*) AS Total 
FROM CountSameValue 
GROUP BY Marks 
HAVING COUNT(*) > 1;

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

SELECT Marks, 
       COUNT(*) AS Total,
       ROUND(COUNT(*) * 100.0 / (SELECT COUNT(*) FROM CountSameValue), 2) AS Percentage
FROM CountSameValue 
GROUP BY Marks;

NULL मानों को शामिल/बहिष्कृत करें:

-- NULL गिनें
SELECT column, COUNT(*) FROM table GROUP BY column;

-- NULL न गिनें (COUNT(column) NULL को अनदेखा करता है)
SELECT column, COUNT(column) FROM table GROUP BY column;

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

बड़े टेबल पर GROUP BY धीमा हो सकता है। कॉलम पर इंडेक्स बनाएं:

CREATE INDEX idx_marks ON CountSameValue(Marks);
  1. - MySQL में फ़ील्ड मान से कॉमा की गिनती करना

    LENGTH और REPLACE से वर्ण गिनती किसी वर्ण (जैसे कॉमा) की घटनाएँ गिनने के लिए: कुल लंबाई - उस वर्ण को हटाने के बाद की लंबाई। सिंटैक्स SELECT LENGTH(col) - LENGTH(REPLACE(col, ,, )) AS comma_count FROM table; तालिका और डेटा INSERT INTO DemoTable1510 VALUES(20,35), (45,67,89), (90,97,101,190); कॉ

  1. - MySQL में ENUM कॉलम से केवल 'NO' मानों की गणना करें

    MySQL में ENUM कॉलम पर सशर्त गणना के लिए बूलियन अभिव्यक्ति का योग (SUM(condition)) उपयोग कर सकते हैं। MySQL में TRUE = 1 और FALSE = 0 होता है। टेबल बनाएं mysql> CREATE TABLE DemoTable1829 ( Name VARCHAR(20), isTopper ENUM(YES,NO) ); डेटा डालें mysql> INSERT INTO DemoTable1829 VALUES(

  1. - MySQL क्वेरी में UNION ALL से कस्टम मान जोड़ें

    कभी-कभी क्वेरी परिणाम में एक अतिरिक्त मान जोड़ना होता है जो टेबल में नहीं है। UNION ALL का उपयोग करके एक स्थिर मान को परिणाम सेट में जोड़ा जा सकता है। टेबल बनाएं mysql> CREATE TABLE DemoTable1847 ( GameStatus ENUM(PENDING,COMPLETED,CANCELLED) ); डेटा डालें mysql> INSERT INTO DemoTable184