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

MySQL में वर्ष के अनुसार उपस्थित और अनुपस्थित छात्रों की गिनती कैसे करें?

MySQL में IF() और SUM() का उपयोग करके शर्ती गणना (conditional counting) करके वर्ष के अनुसार उपस्थित और अनुपस्थित छात्रों की संख्या प्राप्त की जा सकती है।

उदाहरण

उपस्थिति तालिका बनाएं:

mysql> CREATE TABLE DemoTable (
    -> Attendance VARCHAR(20),
    -> CurrentYear INT
    -> );

डेटा डालें:

mysql> INSERT INTO DemoTable VALUES 
    -> ('Present', 2019), ('Absent', 2019), ('Absent', 2017),
    -> ('Present', 2019), ('Present', 2018), ('Present', 2019);

डेटा

+------------+-------------+
| Attendance | CurrentYear |
+------------+-------------+
| Present    |        2019 |
| Absent     |        2019 |
| Absent     |        2017 |
| Present    |        2019 |
| Present    |        2018 |
| Present    |        2019 |
+------------+-------------+

क्वेरी: 2019 के लिए उपस्थित/अनुपस्थित गिनती

mysql> SELECT 
    ->     SUM(IF(Attendance = 'Present', 1, 0)) AS Present,
    ->     SUM(IF(Attendance = 'Absent', 1, 0)) AS Absent
    -> FROM DemoTable
    -> WHERE CurrentYear LIKE '2019%';

परिणाम

+---------+--------+
| Present | Absent |
+---------+--------+
|       3 |      1 |
+---------+--------+

व्याख्या

  • IF(Attendance = 'Present', 1, 0) - उपस्थित तो 1, अन्यथा 0
  • SUM() - सभी 1 का योग = गिनती
  • WHERE CurrentYear LIKE '2019%' - केवल 2019 के लिए

विकल्प: CASE WHEN

SELECT 
    SUM(CASE WHEN Attendance = 'Present' THEN 1 ELSE 0 END) AS Present,
    SUM(CASE WHEN Attendance = 'Absent' THEN 1 ELSE 0 END) AS Absent
FROM DemoTable
WHERE CurrentYear = 2019;

विकल्प: GROUP BY

SELECT Attendance, COUNT(*) AS Count
FROM DemoTable
WHERE CurrentYear = 2019
GROUP BY Attendance;

परिणाम: दो पंक्तियां - Present: 3, Absent: 1

  1. - MySQL में किसी कॉलम में विशिष्ट मान की घटनाओं को गिनना

    MySQL में किसी कॉलम में किसी विशिष्ट मान की घटनाओं (occurrences) को गिनने के लिए COUNT(*) के साथ WHERE क्लॉज का उपयोग करें। सिंटैक्स SELECT COUNT(*) FROM table_name WHERE column_name = specific_value; व्यावहारिक उदाहरण 1. टेबल बनाएं और डेटा डालें INSERT INTO DemoTable VALUES (100, John), (101,

  1. - MySQL में सभी ट्रिगर और वर्तमान डेटाबेस के ट्रिगर कैसे देखें?

    MySQL में ट्रिगर सूचीबद्ध करना सभी डेटाबेस के ट्रिगर देखने के लिए information_schema.triggers टेबल क्वेरी करें, या वर्तमान डेटाबेस के लिए SHOW TRIGGERS का उपयोग करें। सभी डेटाबेस के ट्रिगर देखना mysql> SELECT trigger_schema, trigger_name FROM information_schema.triggers; +----------------+-------

  1. - MySQL में DATEDIFF() का उपयोग करके डेट रिकॉर्ड्स और वर्तमान तारीख का अंतर कैसे निकालें

    DATEDIFF() के साथ तारीख अंतर की गणना मान लें वर्तमान तारीख है 2019-09-06। डेट रिकॉर्ड्स और वर्तमान तारीख के बीच दिनों का अंतर निकालने के लिए DATEDIFF() फंक्शन का उपयोग करें। आइए पहले एक टेबल बनाते हैं: mysql> CREATE TABLE DemoTable ( AdmissionDate DATE ); रिकॉर्ड्स इन्सर्ट करें: mysql> INS