MySQL में COUNT() और IF() को मिलाकर सशर्त गणना करना
MySQL में आप COUNT() और IF() को मिलाकर विशिष्ट शर्तों को पूरा करने वाली पंक्तियों की गणना कर सकते हैं।
व्यावहारिक उदाहरण
तालिका बनाना
mysql> CREATE TABLE DemoTable (
isValidUser BOOLEAN
);
रिकॉर्ड डालना (1 = true, 0 = false)
mysql> INSERT INTO DemoTable VALUES(true); mysql> INSERT INTO DemoTable VALUES(false); mysql> INSERT INTO DemoTable VALUES(false); mysql> INSERT INTO DemoTable VALUES(true); mysql> INSERT INTO DemoTable VALUES(true); mysql> INSERT INTO DemoTable VALUES(true); mysql> INSERT INTO DemoTable VALUES(false);
सभी रिकॉर्ड देखना
mysql> SELECT * FROM DemoTable;
आउटपुट:
+-------------+ | isValidUser | +-------------+ | 1 | | 0 | | 0 | | 1 | | 1 | | 1 | | 0 | +-------------+
COUNT() और IF() का उपयोग करके true मानों की गणना
mysql> SELECT COUNT(IF(isValidUser = 1, 1, NULL)) AS TOTAL_NUMBER_OF_ONE FROM DemoTable;
आउटपुट:
+---------------------+ | TOTAL_NUMBER_OF_ONE | +---------------------+ | 4 | +---------------------+
व्याख्या
IF(isValidUser = 1, 1, NULL)- यदि मान 1 है तो 1 लौटाता है, अन्यथा NULLCOUNT()- NULL मानों को नहीं गिनता, इसलिए केवल 1 की गणना होती है
आधुनिक विकल्प: MySQL 8.0+ में आप SUM(isValidUser = 1) या COUNT(*) FILTER (WHERE isValidUser = 1) का भी उपयोग कर सकते हैं।