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

MySQL में CASE स्टेटमेंट से एकाधिक COUNT() एक ही क्वेरी में लागू करना

MySQL में एक ही क्वेरी में विभिन्न शर्तों के लिए अलग-अलग गिनती (COUNT) प्राप्त करने के लिए CASE स्टेटमेंट को COUNT() के अंदर उपयोग किया जाता है। यह पिवट-टाइप रिपोर्ट के लिए उपयोगी है।

उदाहरण के लिए टेबल बनाना

mysql> CREATE TABLE DemoTable (LastName VARCHAR(100));

डेटा डालना

mysql> INSERT INTO DemoTable VALUES('Smith'), ('Brown'), ('Brown'), ('Smith'), ('Taylor'), ('Taylor'), ('Miller'), ('Miller'), ('Miller');

सभी रिकॉर्ड देखना

mysql> SELECT * FROM DemoTable;

आउटपुट

+----------+
| LastName |
+----------+
| Smith    |
| Brown    |
| Brown    |
| Smith    |
| Taylor   |
| Taylor   |
| Miller   |
| Miller   |
| Miller   |
+----------+

CASE के साथ एकाधिक COUNT

mysql> SELECT
    -> COUNT(CASE WHEN LastName='Smith' THEN 1 END) AS SmithCount,
    -> COUNT(CASE WHEN LastName='Brown' THEN 1 END) AS BrownCount,
    -> COUNT(CASE WHEN LastName='Taylor' THEN 1 END) AS TaylorCount,
    -> COUNT(CASE WHEN LastName='Miller' THEN 1 END) AS MillerCount
    -> FROM DemoTable;

आउटपुट

+------------+------------+-------------+-------------+
| SmithCount | BrownCount | TaylorCount | MillerCount |
+------------+------------+-------------+-------------+
| 2          | 2          | 2           | 3           |
+------------+------------+-------------+-------------+

व्याख्या: CASE WHEN शर्त पूरी होने पर 1 लौटाता है (COUNT गिनता है), अन्यथा NULL लौटाता है (COUNT अनदेखा करता है)। SUM(CASE WHEN ... THEN 1 ELSE 0 END) भी समान कार्य करता है। MySQL 8.0+ में COUNT(*) FILTER (WHERE ...) सिंटैक्स भी उपलब्ध है।

  1. - MySQL में एकल क्वेरी में मल्टीपल LIKE ऑपरेटर लागू करें

    MySQL में एक ही क्वेरी में मल्टीपल LIKE क्लॉज का उपयोग करने के लिए, आप उन्हें OR/AND ऑपरेटर्स के साथ जोड़ सकते हैं। सिंटैक्स: SELECT * FROM yourTableName WHERE (yourColumnName1 LIKE %yourValue1% OR yourColumnName2 LIKE %yourValue2%) OR (yourColumnName3 LIKE %yourValue3%); उदाहरण के लिए एक टेब

  1. - MySQL में एक ही क्वेरी में एकाधिक रिकॉर्ड कैसे अपडेट करें?

    MySQL में UPDATE स्टेटमेंट में WHERE क्लॉज का उपयोग करके एक ही क्वेरी में एकाधिक कॉलम अपडेट किए जा सकते हैं, लेकिन एकाधिक पंक्तियों को अलग-अलग मानों से अपडेट करने के लिए CASE या एकाधिक क्वेरी की आवश्यकता होती है। उदाहरण: एक पंक्ति, एकाधिक कॉलम तालिका बनाएं: mysql> CREATE TABLE DemoTable ( -&

  1. - विशिष्ट कॉलम मानों के लिए एकल MySQL क्वेरी में एकाधिक काउंट प्राप्त करें

    इसके लिए, आप विशिष्ट कॉलम के लिए पैरामीटर मान के साथ एग्रीगेट फंक्शन SUM() का उपयोग कर सकते हैं। आइए पहले एक टेबल बनाते हैं: mysql> create table DemoTable1790 ( Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, Name varchar(20), Score int ); Query OK, 0 rows affected (0.94 sec) इन्सर्ट कमा