MySQL में ENUM कॉलम पर सशर्त गणना के लिए बूलियन अभिव्यक्ति का योग (SUM(condition)) उपयोग कर सकते हैं। MySQL में TRUE = 1 और FALSE = 0 होता है।
टेबल बनाएं
mysql> CREATE TABLE DemoTable1829 (
Name VARCHAR(20),
isTopper ENUM('YES','NO')
);
डेटा डालें
mysql> INSERT INTO DemoTable1829 VALUES('Chris','yes');
mysql> INSERT INTO DemoTable1829 VALUES('David','yes');
mysql> INSERT INTO DemoTable1829 VALUES('Mike','no');
mysql> INSERT INTO DemoTable1829 VALUES('David','yes');
डेटा देखें
+-------+----------+ | Name | isTopper | +-------+----------+ | Chris | YES | | David | YES | | Mike | NO | | David | YES | +-------+----------+
प्रति नाम 'NO' की गणना करें
mysql> SELECT Name, SUM(isTopper='no') AS NoCount
FROM DemoTable1829
GROUP BY Name;
आउटपुट:
+-------+---------+ | Name | NoCount | +-------+---------+ | Chris | 0 | | David | 0 | | Mike | 1 | +-------+---------+
व्याख्या
isTopper='no'एक बूलियन अभिव्यक्ति है जो 1 (सत्य) या 0 (असत्य) देती है।SUM()इन 1 और 0 को जोड़ देता है, जिससे गणना मिलती है।GROUP BY Nameप्रत्येक नाम के लिए अलग गणना देता है।
अन्य उपयोगी पैटर्न
COUNT(CASE WHEN isTopper='no' THEN 1 END)- मानक SQL तरीकाSUM(isTopper='no')- MySQL शॉर्टकट, संक्षिप्त और तेज़- केस-इनसेंसिटिव तुलना के लिए
LOWER()या कोलेशन का उपयोग करें।