MySQL में SUM() से विशिष्ट मानों की गणना करना
ज्ञात विशिष्ट मानों की घटनाएँ गिनने के लिए बूलियन अभिव्यक्ति के साथ SUM() का उपयोग करें।
टेबल बनाना और डेटा डालना
mysql> CREATE TABLE DemoTable636 (
StudentId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
StudentFirstName VARCHAR(100)
);
Query OK, 0 rows affected (0.51 sec)
mysql> INSERT INTO DemoTable636(StudentFirstName) VALUES('John');
Query OK, 1 row affected (0.18 sec)
mysql> INSERT INTO DemoTable636(StudentFirstName) VALUES('Robert');
Query OK, 1 row affected (0.13 sec)
mysql> INSERT INTO DemoTable636(StudentFirstName) VALUES('Robert');
Query OK, 1 row affected (0.22 sec)
mysql> INSERT INTO DemoTable636(StudentFirstName) VALUES('Sam');
Query OK, 1 row affected (0.20 sec)
mysql> INSERT INTO DemoTable636(StudentFirstName) VALUES('Mike');
Query OK, 1 row affected (0.12 sec)
mysql> INSERT INTO DemoTable636(StudentFirstName) VALUES('John');
Query OK, 1 row affected (0.14 sec)
mysql> INSERT INTO DemoTable636(StudentFirstName) VALUES('Robert');
Query OK, 1 row affected (0.16 sec)
सभी रिकॉर्ड देखना
mysql> SELECT * FROM DemoTable636;
+-----------+------------------+ | StudentId | StudentFirstName | +-----------+------------------+ | 1 | John | | 2 | Robert | | 3 | Robert | | 4 | Sam | | 5 | Mike | | 6 | John | | 7 | Robert | +-----------+------------------+ 7 rows in set (0.00 sec)
ज्ञात मानों की गणना करने का क्वेरी
mysql> SELECT
SUM(StudentFirstName = 'John') AS JOHN_COUNT,
SUM(StudentFirstName = 'Robert') AS ROBERT_COUNT,
SUM(StudentFirstName = 'Sam') AS SAM_COUNT,
SUM(StudentFirstName = 'Mike') AS MIKE_COUNT
FROM DemoTable636;
परिणाम
+------------+--------------+-----------+------------+ | JOHN_COUNT | ROBERT_COUNT | SAM_COUNT | MIKE_COUNT | +------------+--------------+-----------+------------+ | 2 | 3 | 1 | 1 | +------------+--------------+-----------+------------+ 1 row in set (0.00 sec)
व्याख्या: MySQL में बूलियन अभिव्यक्ति StudentFirstName = 'John' सत्य के लिए 1 और असत्य के लिए 0 देती है। SUM() इन 1 और 0 को जोड़कर गिनती देता है। यह COUNT(CASE WHEN ... THEN 1 END) से अधिक संक्षिप्त है।