简体   繁体   English

MySQL中vs.Count的情况

[英]Case When vs. Count in MySQL

I have problem with this query on MySQL. 我在MySQL上有此查询问题。

If tried this version : 如果尝试此版本:

mysql>  SELECT
    COUNT(*),
    myCode,
    myState
FROM
    `tbl_2016`
WHERE
    `myCode` LIKE '%XI10-2-020012%'
GROUP BY
    `myState`;

The output is : 输出为:

+----------+---------------+--------------------------------+
| COUNT(*) | myCode        | myState                        |
+----------+---------------+--------------------------------+
|        5 | XI10-2-020012 | NULL                           |
|        4 | XI10-2-020012 | ACTIVE                         |
|        1 | XI10-2-020012 | NOT ACTIVE                     |
+----------+---------------+--------------------------------+
2 rows in set

But if tried this other versione with CASE WHEN syntax : 但是如果尝试使用CASE WHEN语法尝试其他版本:

mysql> SELECT
    myCode,
    COUNT(
        CASE
        WHEN myState IN (
            'Active'
        ) THEN
            1
        ELSE
            0
        END
    ) AS `Active`,
    COUNT(
        CASE
        WHEN myState IN (
            'Not Active'
        ) THEN
            1
        ELSE
            0
        END
    ) AS `Not Active`
FROM
    `tbl_2016`
WHERE
        `myCode` LIKE '%XI10-2-020012%'
GROUP BY
    `myState`;

The output is different than the first version : 输出与第一个版本不同:

+---------------+--------+------------+
| myCode        | Active | Not Active |
+---------------+--------+------------+
| XI10-2-020012 |      4 |          4 |
+---------------+--------+------------+
1 row in set

How to do resolve this ? 该如何解决呢?

Can you help me? 你能帮助我吗?

Thank you in advance, my code below. 预先感谢您,下面是我的代码。

在第二个版本中使用SUM而不是COUNT

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM