有这个表
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
提前致谢
答案 0 :(得分:5)
如果列只包含0
和1
,请将它们相加:
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)
无论列数据类型