如何在SQL中使用多个COUNT

时间:2018-01-25 22:17:02

标签: mysql sql

在我的表格中,我tasktask state 1 - planned 2 - executing 3 - finished 。{/ p>

task

我想要计算所有计划,执行和完成SELECT COUNT(*) FROM `task` WHERE state = 1 SELECT COUNT(*) FROM `task` WHERE state = 2 SELECT COUNT(*) FROM `task` WHERE state = 3

我可以写三个这样的查询:

patchelf --set-interpreter "\$ORIGIN/lib/ld-linux-x86-64.so.2" --set-rpath "\$ORIGIN/lib" ./grep

所以,我的问题是:有可能(以及如何?)在一个查询中获取此数据?

感谢您的帮助。

2 个答案:

答案 0 :(得分:6)

另一种方法是使用group by,如下所示:

select state, count(*)
from task
group by state

答案 1 :(得分:5)

你使用SUM

select state,
sum(case when state = 1 then 1 else 0 end) state1count,
sum(case when state = 2 then 1 else 0 end) state2count,
sum(case when state = 3 then 1 else 0 end) state3count
from task