COUNT() के साथ CASE स्टेटमेंट का उपयोग करके थ्रेशोल्ड से अधिक और कम/बराबर मानों की गिनती अलग-अलग कॉलम में करें।
टेबल बनाना और डेटा डालना
mysql> CREATE TABLE DemoTable (Score INT);
Query OK, 0 rows affected (0.71 sec)
mysql> INSERT INTO DemoTable VALUES(40),(48),(59),(33),(38),(89),(35);
सभी रिकॉर्ड देखना
mysql> SELECT * FROM DemoTable;
आउटपुट:
+-------+
| Score |
+-------+
| 40 |
| 48 |
| 59 |
| 33 |
| 38 |
| 89 |
| 35 |
+-------+
45 से अधिक और ≤45 की गिनती के लिए क्वेरी
mysql> SELECT
COUNT(CASE WHEN Score > 45 THEN 1 END) AS CountOfValueGreaterThan45,
COUNT(CASE WHEN Score <= 45 THEN 1 END) AS CountOfValueLessThanOrEqualTo45
FROM DemoTable;
परिणाम:
+---------------------------+---------------------------------+
| CountOfValueGreaterThan45 | CountOfValueLessThanOrEqualTo45 |
+---------------------------+---------------------------------+
| 3 | 4 |
+---------------------------+---------------------------------+
1 row in set (0.00 sec)
व्याख्या: CASE WHEN condition THEN 1 END मिलान होने पर 1 (गैर-NULL) लौटाता है, अन्यथा NULL। COUNT() केवल गैर-NULL मान गिनता है, जिससे सशर्त गिनती प्रभावी होती है। SUM(CASE WHEN condition THEN 1 ELSE 0 END) भी काम करता है।