在我的表格中,我task
,task
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
所以,我的问题是:有可能(以及如何?)在一个查询中获取此数据?
感谢您的帮助。
答案 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