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

MySQL में ENUM कॉलम से केवल 'NO' मानों की गणना करें

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() या कोलेशन का उपयोग करें।
  1. - MySQL 8.0 में ROW_NUMBER() विंडो फ़ंक्शन से SELECT क्वेरी में पंक्ति संख्या (रैंक) जोड़ें

    MySQL 8.0+ में ROW_NUMBER() विंडो फ़ंक्शन का उपयोग करके SELECT क्वेरी के परिणाम सेट में क्रमिक पंक्ति संख्या (रैंक) जोड़ सकते हैं। यह पेजिनेशन, रैंकिंग, और पंक्ति पहचान के लिए मानक, घोषणात्मक तरीका है। सिंटैक्स SELECT column_list, ROW_NUMBER() OVER (ORDER BY sort_column [ASC|DESC]) AS Rank

  1. - MySQL में फ़ील्ड मान से कॉमा की गिनती करना

    LENGTH और REPLACE से वर्ण गिनती किसी वर्ण (जैसे कॉमा) की घटनाएँ गिनने के लिए: कुल लंबाई - उस वर्ण को हटाने के बाद की लंबाई। सिंटैक्स SELECT LENGTH(col) - LENGTH(REPLACE(col, ,, )) AS comma_count FROM table; तालिका और डेटा INSERT INTO DemoTable1510 VALUES(20,35), (45,67,89), (90,97,101,190); कॉ

  1. - MySQL में दो कॉलम के मान गिनें और NULL को बाहर रखें

    COUNT() फ़ंक्शन से NULL मानों को छोड़कर कॉलम मान गिनना COUNT(कॉलम_नाम) स्वचालित रूप से NULL मानों को अनदेखा करता है। दो कॉलम के गैर-NULL मानों का कुल योग पाने के लिए दोनों COUNT को जोड़ें। टेबल बनाएं और डेटा डालें: mysql> create table DemoTable1975 ( StudentName varchar(20), StudentMarks int ); Q