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

MySQL में एक क्वेरी से दो फील्ड की गिनती कैसे प्राप्त करें?

MySQL में CASE और SUM() का उपयोग करके एक क्वेरी में कई मानों की गिनती

जब आपको एक ही कॉलम में अलग-अलग मानों (जैसे 'Male' और 'Female') की गिनती एक साथ चाहिए, तो CASE स्टेटमेंट के साथ SUM() फंक्शन का उपयोग करें।

उदाहरण: कर्मचारियों के लिंग की गिनती

पहले एक डेमो टेबल बनाएं:

CREATE TABLE DemoTable (
    EmployeeGender ENUM('Male', 'Female')
);

कुछ रिकॉर्ड डालें:

INSERT INTO DemoTable VALUES ('Male');
INSERT INTO DemoTable VALUES ('Female');
INSERT INTO DemoTable VALUES ('Male');
INSERT INTO DemoTable VALUES ('Female');
INSERT INTO DemoTable VALUES ('Male');
INSERT INTO DemoTable VALUES ('Female');

सभी रिकॉर्ड देखें:

SELECT * FROM DemoTable;
+----------------+
| EmployeeGender |
+----------------+
| Male           |
| Female         |
| Male           |
| Female         |
| Male           |
| Female         |
+----------------+

एक क्वेरी में दोनों की गिनती

SELECT 
    SUM(CASE WHEN EmployeeGender = 'Male' THEN 1 ELSE 0 END) AS Total_Male,
    SUM(CASE WHEN EmployeeGender = 'Female' THEN 1 ELSE 0 END) AS Total_Female
FROM DemoTable;

परिणाम:

+------------+--------------+
| Total_Male | Total_Female |
+------------+--------------+
| 3          | 3            |
+------------+--------------+

यह कैसे काम करता है?

  • CASE WHEN EmployeeGender = 'Male' THEN 1 ELSE 0 END — प्रत्येक पंक्ति के लिए 1 लौटाता है यदि लिंग 'Male' है, अन्यथा 0।
  • SUM() — इन 1 और 0 को जोड़कर कुल गिनती देता है।
  • यही तर्क 'Female' के लिए दोहराया जाता है।

विकल्प: आप COUNT(CASE WHEN ... THEN 1 END) का भी उपयोग कर सकते हैं, क्योंकि COUNT केवल नॉन-NULL मानों को गिनता है।

  1. - MySQL में एक ही क्वेरी से दो टेबल्स की पंक्तियों को कैसे काउंट करें

    सबक्वेरीज़ के साथ दो टेबल्स की रो काउंट एक साथ प्राप्त करना एक ही क्वेरी में दो अलग-अलग टेबल्स की पंक्ति संख्या गिनने के लिए सबक्वेरीज़ का उपयोग करें। पहली टेबल बनाएं: mysql> CREATE TABLE DemoTable1 ( Name VARCHAR(40) ); रिकॉर्ड्स इन्सर्ट करें: mysql> INSERT INTO DemoTable1 VALUES (Chris);

  1. - MySQL में UNION ALL से विभिन्न टेबलों की गिनती का योग एकल क्वेरी में प्राप्त करें

    MySQL में कई टेबलों की पंक्ति गिनती का योग एकल क्वेरी में प्राप्त करने के लिए UNION ALL के साथ सबक्वेरी और बाहरी SUM() का उपयोग करें। यह प्रत्येक टेबल को अलग से गिनने और फिर परिणाम जोड़ने से अधिक कुशल है। सिंटैक्स SELECT SUM(AllCount) AS Total_Count FROM ( (SELECT COUNT(*) AS AllCount FROM tabl

  1. - MySQL में दो टेबल पर एकल SELECT क्वेरी करना (कार्टेशियन उत्पाद)

    MySQL में दो टेबल पर कार्टेशियन उत्पाद (क्रॉस जॉइन) दो टेबल पर बिना जॉइन शर्त के SELECT करने से कार्टेशियन उत्पाद (क्रॉस जॉइन) उत्पन्न होता है: पहली टेबल की प्रत्येक पंक्ति दूसरी टेबल की प्रत्येक पंक्ति के साथ जुड़ती है। परिणाम पंक्तियाँ = पंक्तियाँ_टेबल1 × पंक्तियाँ_टेबल2। उदाहरण: दो असंबंधित टेबल