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

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

COUNT() और GROUP BY का उपयोग

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

उदाहरण: टेबल बनाना और डेटा इन्सर्ट करना

mysql> CREATE TABLE DemoTable841(
    Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    Value VARCHAR(100)
);
Query OK, 0 rows affected (0.67 sec)

रिकॉर्ड्स इन्सर्ट करना

mysql> INSERT INTO DemoTable841(Value) VALUES
    ('X'),('Y'),('Y'),('Z'),('X'),('Z');
Query OK, 6 rows affected (...)

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

mysql> SELECT * FROM DemoTable841;
+----+-------+
| Id | Value |
+----+-------+
| 1  | X     |
| 2  | Y     |
| 3  | Y     |
| 4  | Z     |
| 5  | X     |
| 6  | Z     |
+----+-------+
6 rows in set (0.00 sec)

मान के अनुसार गिनती क्वेरी

mysql> SELECT Value, CONCAT(COUNT(Value), ' Times') FROM DemoTable841 GROUP BY Value;

परिणाम

+-------+-------------------------------+
| Value | CONCAT(COUNT(Value), ' Times') |
+-------+-------------------------------+
| X     | 2 Times                       |
| Y     | 2 Times                       |
| Z     | 2 Times                       |
+-------+-------------------------------+
3 rows in set (0.04 sec)

क्वेरी व्याख्या

  • GROUP BY Value - समान मान वाली पंक्तियों को ग्रुप करता है
  • COUNT(Value) - प्रत्येक ग्रुप में गैर-NULL मान गिनता है
  • CONCAT() - गिनती के साथ " Times" टेक्स्ट जोड़ता है

विविधताएं

सभी कॉलम्स के साथ (किसी भी कॉलम पर GROUP BY)

SELECT Value, COUNT(*) AS Count FROM DemoTable841 GROUP BY Value;

क्रमबद्ध परिणाम

SELECT Value, COUNT(*) AS Count 
FROM DemoTable841 
GROUP BY Value 
ORDER BY Count DESC;

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

SELECT Value, COUNT(*) AS Count 
FROM DemoTable841 
GROUP BY Value 
HAVING COUNT(*) > 1;

NULL मानों की गिनती

SELECT COUNT(*) - COUNT(Value) AS NullCount FROM DemoTable841;
-- या
SELECT COUNT(*) FROM DemoTable841 WHERE Value IS NULL;

COUNT(*) vs COUNT(कॉलम)

फंक्शनगिनता है
COUNT(*)सभी पंक्तियां (NULL सहित)
COUNT(column)केवल गैर-NULL मान
COUNT(DISTINCT column)अद्वितीय गैर-NULL मान

विंडो फंक्शन (MySQL 8.0+)

SELECT Value, 
       COUNT(*) OVER (PARTITION BY Value) AS Count
FROM DemoTable841;
  1. - MySQL में LIKE क्वेरी से % चिह्न वाले कॉलम मान खोजना

    ESCAPE करके % को शाब्दिक मिलान करना LIKE में % वाइल्डकार्ड है। इसे शाब्दिक % वर्ण के रूप में खोजने के लिए बैकस्लैश \ से एस्केप करें: \\%। तालिका और डेटा (%JohnSmith), (DavidMiller), (CarolTaylor%), (%DavidMiller); क्वेरी: % से शुरू होने वाले नाम SELECT * FROM DemoTable1497 WHERE Name LIKE \\%;

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

    GROUP_CONCAT() और ORDER BY का उपयोग करके पंक्तियों को सरणी में ग्रुप करना पंक्तियों को सरणी में ग्रुप करने के लिए GROUP_CONCAT() के साथ ORDER BY क्लॉज का उपयोग करें। पहले एक टेबल बनाते हैं: CREATE TABLE DemoTable ( Id INT, FirstName VARCHAR(20) ); Query OK, 0 rows affected (0.78 sec) रिक

  1. - MySQL में विशिष्ट कॉलम मान (नाम) प्राप्त करें

    विशिष्ट कॉलम मान प्राप्त करने के लिए LIKE क्लॉज का उपयोग करें। आइए पहले एक टेबल बनाते हैं: mysql> create table DemoTable1809 ( Name varchar(20) ); Query OK, 0 rows affected (0.00 sec) इन्सर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें: mysql> insert into DemoTable1809 values(John); Qu