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

MySQL में मान के अनुसार COUNT - विशिष्ट मान की घटनाओं की गणना

समाधान: COUNT() के साथ IF()

किसी कॉलम में विशिष्ट मान की घटनाओं की गणना करने के लिए COUNT() के साथ IF() फ़ंक्शन का उपयोग करें।

सिंटैक्स

SELECT 
    COUNT(IF(yourColumnName = specificValue, 1, NULL)) 
FROM yourTableName;

व्यावहारिक उदाहरण

टेबल बनाना और डेटा डालना

mysql> CREATE TABLE countValueDemo (
    -> ShippingDatetime DATETIME,
    -> FirstValue INT,
    -> SecondValue INT
    -> );

mysql> INSERT INTO countValueDemo VALUES
    -> ('2019-01-23', 1, 2),
    -> ('2017-02-21', NULL, 2),
    -> ('2016-04-12', 1, NULL);

डेटा

ShippingDatetimeFirstValueSecondValue
2019-01-2312
2017-02-21NULL2
2016-04-121NULL

मान-विशिष्ट गणना क्वेरी

mysql> SELECT 
    -> ShippingDatetime,
    -> COUNT(*),
    -> COUNT(IF(FirstValue = 1, 1, NULL)) AS first_val_1_count,
    -> COUNT(IF(SecondValue = 2, 1, NULL)) AS second_val_2_count
    -> FROM countValueDemo;

परिणाम

+---------------------+----------+-------------------+--------------------+
| ShippingDatetime    | COUNT(*) | first_val_1_count | second_val_2_count |
+---------------------+----------+-------------------+--------------------+
| 2019-01-23 00:00:00 | 3        | 2                 | 2                  |
+---------------------+----------+-------------------+--------------------+

व्याख्या

  • COUNT(*) = कुल 3 पंक्तियाँ
  • FirstValue = 1 2 पंक्तियों में (पंक्ति 1 और 3)
  • SecondValue = 2 2 पंक्तियों में (पंक्ति 1 और 2)
  • COUNT() NULL मानों को नहीं गिनता, इसलिए IF में ELSE NULL महत्वपूर्ण है

आधुनिक विकल्प (MySQL 8.0+)

SELECT 
    COUNT(*) FILTER (WHERE FirstValue = 1) AS first_val_1_count,
    COUNT(*) FILTER (WHERE SecondValue = 2) AS second_val_2_count
FROM countValueDemo;

संबंधित: CASE के साथ

SELECT 
    SUM(CASE WHEN FirstValue = 1 THEN 1 ELSE 0 END) AS first_val_1_count
FROM countValueDemo;
  1. - MySQL में DISTINCT ORDER BY DESC LIMIT OFFSET से Nth उच्चतम मान चुनें

    MySQL में DISTINCT, ORDER BY DESC, और LIMIT ... OFFSET का संयोजन उपयोग करके Nth उच्चतम विशिष्ट मान प्राप्त कर सकते हैं। सिंटैक्स SELECT DISTINCT कॉलम_नाम FROM टेबल_नाम ORDER BY कॉलम_नाम DESC LIMIT (N-1), 1; उदाहरण: 3rd उच्चतम अंक (N=3) 1. टेबल बनाएं CREATE TABLE DemoTable1594 (Marks INT); 2. डे

  1. - क्या हम MySQL SELECT IN() में एकल मान सेट कर सकते हैं?

    हाँ, हम MySQL में IN() के साथ एकल मान सेट कर सकते हैं। आइए पहले एक टेबल बनाते हैं: mysql> create table DemoTable -> ( -> FirstName varchar(20) -> ); Query OK, 0 rows affected (0.65 sec) इन्सर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें: mysql> insert into DemoTable values(Chris)

  1. - MySQL में मान 0 होने पर दूसरे कॉलम का मान कैसे चुनें?

    IF() फ़ंक्शन का उपयोग यदि किसी कॉलम का मान 0 है तो दूसरे कॉलम का मान लेने के लिए IF() फ़ंक्शन प्रयोग करें: select IF(yourColumnName1=0, yourColumnName2, yourColumnName1) as anyAliasName from yourTableName; टेबल बनाना और डेटा डालना insert into demo30(value,original_value) values(30,0); डेटा देखना