Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

MySQL में सिंगल क्वेरी के साथ मल्टीपल काउंट कैसे प्राप्त करें

कभी-कभी आपको एक क्वेरी में एकाधिक गणनाओं का चयन करना पड़ सकता है, विभिन्न स्थितियों के लिए एकाधिक गणनाएं प्राप्त करनी पड़ सकती हैं, या विभिन्न मानदंडों के साथ एकाधिक गणनाओं का चयन करना पड़ सकता है। इस लेख में, हम देखेंगे कि MySQL में सिंगल क्वेरी के साथ मल्टीपल काउंट कैसे प्राप्त करें।


MySQL में सिंगल क्वेरी के साथ कई काउंट कैसे प्राप्त करें

मान लें कि आपके पास निम्न तालिका है product_sales(id, product, order_date, amount)

mysql> create table product_sales(
     id int,
     product varchar(10),
     order_date date,
     amount int
     );

mysql> insert into product_sales(id, product, order_date, amount)
     values(1, 'A', '2021-01-01', 250),
     (2, 'B', '2021-01-02', 200),
     (3, 'A', '2021-01-03', 150),
     (4, 'B', '2021-01-04', 250);

mysql> select * from product_sales;
+------+---------+------------+--------+
| id   | product | order_date | amount |
+------+---------+------------+--------+
|    1 | A       | 2021-01-01 |    250 |
|    2 | B       | 2021-01-02 |    200 |
|    3 | A       | 2021-01-03 |    150 |
|    4 | B       | 2021-01-04 |    250 |
+------+---------+------------+--------+

मान लें कि आप एक ही क्वेरी में कुल संख्या, उत्पाद A ऑर्डर की संख्या और उत्पाद B ऑर्डर की संख्या चाहते हैं।

यहाँ उपरोक्त को पूरा करने के लिए SQL क्वेरी है।

mysql> select count(*) as total_count,
        count(if(product='A',1,null)) as A_count,
        count(if(product='B',1,null)) as B_count
        from product_sales;
+-------------+---------+---------+
| total_count | A_count | B_count |
+-------------+---------+---------+
|           4 |       2 |       2 |
+-------------+---------+---------+

आइए उपरोक्त प्रश्न को विस्तार से देखें।

गिनती(*) कुल गिनती देने के लिए तालिका में सभी पंक्तियों की गणना करता है।

गिनें(अगर(उत्पाद='ए',1,शून्य)) ए_काउंट के रूप में - जब हम गिनती फ़ंक्शन के अंदर एक IF स्थिति का उपयोग करते हैं, तो यह केवल उन पंक्तियों की गणना करेगा जहां स्थिति सत्य है। हमारी शर्त उन पंक्तियों से मेल खाने की है जहां उत्पाद =ए। तो MySQL, केवल उन पंक्तियों की गणना करता है जहां उत्पाद ए है। अन्यथा इसकी गणना नहीं की जाती है (एनयूएलएल के रूप में असाइन किया गया)।

कृपया ध्यान दें, शून्य का उपयोग करना महत्वपूर्ण है यदि स्थिति विफल हो जाती है तो गैर-मिलान वाली पंक्तियों की भी गणना की जाती है।

इसी तरह, हम उन पंक्तियों के लिए गिनती की गणना करते हैं जहां उत्पाद=बी

जैसा कि नीचे दिखाया गया है, आप CASE स्टेटमेंट का उपयोग करके भी उपरोक्त परिणाम प्राप्त कर सकते हैं।

mysql> select count(*) as total_count,
 count(case when product='A' then 1 else null end) as A_count,
 count(case when product='B' then 1 else null end) as B_count
 from product_sales;
+-------------+---------+---------+
| total_count | A_count | B_count |
+-------------+---------+---------+
|           4 |       2 |       2 |
+-------------+---------+---------+

MySQL के लिए एक रिपोर्टिंग टूल की आवश्यकता है? Ubiq मिनटों में डेटा की कल्पना करना और रीयल-टाइम डैशबोर्ड में मॉनिटर करना आसान बनाता है। इसे आज ही आजमाएं!

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL सर्वर चला गया है - ठीक 60 सेकंड में

  2. MySQL डेटाबेस में फाइल कैसे डालें?

  3. यह जांचने का सबसे अच्छा तरीका है कि mysql_query ने कोई परिणाम दिया है या नहीं?

  4. MySql एक साथ दो टेबल अपडेट करें

  5. MYSQL LOAD DATA INFILE का उपयोग करके csv से डेटा आयात करता है