我对MySQL上的这个查询有问题。
如果试用此版本:
mysql> SELECT
COUNT(*),
myCode,
myState
FROM
`tbl_2016`
WHERE
`myCode` LIKE '%XI10-2-020012%'
GROUP BY
`myState`;产出如下:
+----------+---------------+--------------------------------+
| COUNT(*) | myCode | myState |
+----------+---------------+--------------------------------+
| 5 | XI10-2-020012 | NULL |
| 4 | XI10-2-020012 | ACTIVE |
| 1 | XI10-2-020012 | NOT ACTIVE |
+----------+---------------+--------------------------------+
2 rows in set但是,如果尝试使用情况下的另一个版本,当语法时:
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`;输出与第一个版本不同:
+---------------+--------+------------+
| myCode | Active | Not Active |
+---------------+--------+------------+
| XI10-2-020012 | 4 | 4 |
+---------------+--------+------------+
1 row in set如何解决这个问题?
你能帮帮我吗?
谢谢您,我下面的代码。
发布于 2017-01-20 08:18:05
在第二版中使用和而不是计数
https://stackoverflow.com/questions/41758454
复制相似问题