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

MySQL में COUNT() के बिना बहु-गिनती करना

SUM() और CASE से सशर्त गिनती

COUNT() के बजाय SUM(CASE ...) का उपयोग करके एक ही क्वेरी में कई शर्तों की गिनती की जा सकती है।

तालिका और डेटा

mysql> CREATE TABLE DemoTable1485 (
    -> StudentId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> StudentName VARCHAR(20),
    -> StudentSubject VARCHAR(20)
    -> );

mysql> INSERT INTO DemoTable1485(StudentName, StudentSubject) VALUES
    -> ('Chris', 'MySQL'), ('Robert', 'MongoDB'),
    -> ('Robert', 'MongoDB'), ('Chris', 'Java');

विषयवार छात्र गिनती

mysql> SELECT StudentSubject,
    -> SUM(CASE WHEN StudentName = 'Chris' THEN 1 ELSE 0 END) AS Chris_Count,
    -> SUM(CASE WHEN StudentName = 'Robert' THEN 1 ELSE 0 END) AS Robert_Count
    -> FROM DemoTable1485
    -> GROUP BY StudentSubject;

परिणाम

+----------------+-------------+--------------+
| StudentSubject | Chris_Count | Robert_Count |
+----------------+-------------+--------------+
| MySQL          | 1           | 0            |
| MongoDB        | 0           | 2            |
| Java           | 1           | 0            |
+----------------+-------------+--------------+

लाभ: एक ही पास में कई कंडीशनल काउंट। COUNT(CASE ...) भी काम करता है लेकिन SUM() अधिक सहज है।

  1. - MySQL में UPPER() और IN() का उपयोग करके केस-असंवेदनशील SELECT करना

    MySQL में केस-असंवेदनशील IN() क्वेरी डिफ़ॉल्ट रूप से, MySQL स्ट्रिंग तुलना कॉलेशन पर निर्भर करती है। IN() के साथ स्पष्ट केस-असंवेदनशील मिलान के लिए, तुलना से पहले दोनों पक्षों पर UPPER() या LOWER() लागू करें। उदाहरण: नाम फ़िल्टरिंग SELECT * FROM DemoTable1460; +--------+ | Name | +--------+ | Ch

  1. - mysqldump के बिना MySQL डेटाबेस डुप्लिकेट करना

    CREATE TABLE ... AS SELECT से डेटाबेस कॉपी करना CREATE TABLE db1.table SELECT * FROM db2.table सिंटैक्स से एक डेटाबेस से दूसरे में तालिका संरचना और डेटा दोनों कॉपी हो जाते हैं। स्रोत डेटाबेस और तालिका INSERT INTO DemoTable101 VALUES(101, Sam), (102, Bob), (103, David); लक्ष्य डेटाबेस में कॉपी C

  1. - MySQL में कई टेबल्स से Count(*) पंक्तियों की गिनती कैसे करें?

    MySQL में एकाधिक टेबल्स से पंक्तियों की गिनती MySQL में कई टेबल्स से पंक्तियों की संख्या प्राप्त करने के लिए, आप सबक्वेरी का उपयोग करके प्रत्येक टेबल की गिनती अलग-अलग प्राप्त कर सकते हैं और फिर उन्हें एक ही परिणाम सेट में जोड़ सकते हैं। सिंटैक्स SELECT (SELECT COUNT(*) FROM yourTableName1) AS