我需要一个查询来计算不同的结果......
我的表
ID | stats | name
-----------------
1 | 1 | John
2 | 1 | John
3 | 2 | John
4 | 2 | John
5 | 3 | John
我需要这样的查询....
SELECT if( stats = 2, ADD + 1, 0) as ok, if(stats = 3, ADD + 1, 0) as no_ok
感谢。
答案 0 :(得分:4)
如果要同时计算数据集中具有多个特定条件的行数,可以使用模式COUNT(CASE WHEN criteria THEN 1 END)
。这是一个计算stats = 2
和stats = 3
的行数的示例:
SELECT
count(case when stats = 2 then 1 end) as ok,
count(case when stats = 3 then 1 end) as not_ok
from
Table1
结果:
OK | NOT_OK
-----------
2 | 1