在同一查询上计算两列

时间:2017-03-16 07:59:06

标签: mysql

有这个表

executing     failed
0              1
1              1

我想在单个查询中执行多少执行和失败。

我知道我可以在分开的查询中制作它们:

SELECT count(*) executing FROM mytable where executing=1;
SELECT count(*) failed FROM mytable  where failed=1;

如何通过单个查询获得以下输出?

executing     failed
1              2

提前致谢

2 个答案:

答案 0 :(得分:5)

如果列只包含01,请将它们相加:

SELECT SUM(executing) executing, SUM(failed) failed FROM mytable

编辑:你需要SUM而不是COUNT,因为虽然COUNT不计算NULL值,但它实际上会计算整数值0所以它会在你的案例中给出错误的结果

答案 1 :(得分:0)

select count(executing), count(failed) from mytable

始终有效,因为count(col)不计算列中的空条目。所以你不需要求和,你总是可以依靠

的倍数列
 count(col)

无论列数据类型