在我的餐桌上task,每个人task都有state.
1 - planned
2 - executing
3 - finished
Run Code Online (Sandbox Code Playgroud)
我想要计算所有计划,执行和完成task.
我可以写三个这样的查询:
SELECT COUNT(*) FROM `task` WHERE state = 1
SELECT COUNT(*) FROM `task` WHERE state = 2
SELECT COUNT(*) FROM `task` WHERE state = 3
Run Code Online (Sandbox Code Playgroud)
所以,我的问题是:有可能(以及如何?)在一个查询中获取此数据?
感谢您的任何帮助.
另一种方法是使用group by,如下所示:
select state, count(*)
from task
group by state
Run Code Online (Sandbox Code Playgroud)
你使用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
Run Code Online (Sandbox Code Playgroud)