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

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

MySQL में COUNT() एग्रीगेट फ़ंक्शन और GROUP BY का उपयोग करके कॉलम में प्रत्येक विशिष्ट मान की आवृत्ति (घटनाओं की संख्या) गिनें।

उदाहरण: टेबल बनाना और डेटा डालना

mysql> CREATE TABLE DemoTable (
    -> ProductName VARCHAR(100)
    -> );
Query OK, 0 rows affected (0.59 sec)
mysql> INSERT INTO DemoTable VALUES
    -> ('Product-1'), ('Product-2'), ('Product-3'), ('Product-3'),
    -> ('Product-2'), ('Product-4'), ('Product-5'), ('Product-1');

सभी रिकॉर्ड देखना

mysql> SELECT * FROM DemoTable;

आउटपुट

+-------------+
| ProductName |
+-------------+
| Product-1   |
| Product-2   |
| Product-3   |
| Product-3   |
| Product-2   |
| Product-4   |
| Product-5   |
| Product-1   |
+-------------+
8 rows in set (0.00 sec)

प्रति उत्पाद गिनती प्राप्त करना

mysql> SELECT ProductName, COUNT(ProductName) AS TotalCount FROM DemoTable GROUP BY ProductName;

आउटपुट

+-------------+------------+
| ProductName | TotalCount |
+-------------+------------+
| Product-1   | 2          |
| Product-2   | 2          |
| Product-3   | 2          |
| Product-4   | 1          |
| Product-5   | 1          |
+-------------+------------+
5 rows in set (0.05 sec)

मुख्य बिंदु:

  • GROUP BY ProductName - समान उत्पाद नाम वाली पंक्तियों को समूहित करता है
  • COUNT(ProductName) - प्रत्येक समूह में गैर-NULL मान गिनता है
  • COUNT(*) - सभी पंक्तियाँ गिनता है (NULL सहित)
  • परिणाम डिफ़ॉल्ट रूप से GROUP BY कॉलम द्वारा क्रमबद्ध होता है (MySQL 5.7 तक); 8.0+ में क्रम गारंटी नहीं

घटते क्रम में क्रमबद्ध:

SELECT ProductName, COUNT(*) AS TotalCount
FROM DemoTable
GROUP BY ProductName
ORDER BY TotalCount DESC;

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

SELECT ProductName, COUNT(*) AS TotalCount
FROM DemoTable
GROUP BY ProductName
HAVING COUNT(*) > 1;
  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 क्वेरी में सरणी के तत्वों का मिलान कैसे करें?

    IN ऑपरेटर और HAVING COUNT का उपयोग करके सरणी मिलान आइए पहले एक टेबल बनाते हैं: CREATE TABLE DemoTable1523 ( Id INT, Value INT ); Query OK, 0 rows affected (0.76 sec) रिकॉर्ड्स डालना INSERT INTO DemoTable1523 VALUES(1, 99); Query OK, 1 row affected (0.10 sec) सभी रिकॉर्ड्स देखना SELECT

  1. - MySQL में सबसे अधिक घटनाओं वाले फील्ड मान को कैसे लौटाएं?

    MySQL में किसी कॉलम में सबसे अधिक बार आने वाले मान (मोड/Mode) को खोजने के लिए, GROUP BY के साथ COUNT(*) गिनें, फिर ORDER BY COUNT(*) DESC और LIMIT 1 से शीर्ष परिणाम लें। उदाहरण: सबसे आम FirstName खोजना डेमो टेबल बनाएं: mysql> CREATE TABLE DemoTable1940 (FirstName VARCHAR(20)); डेटा इन्सर्ट कर