Mysql Count不同的结果

时间:2012-05-18 21:13:47

标签: mysql database count distinct

我需要一个查询来计算不同的结果......

我的表

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

感谢。

1 个答案:

答案 0 :(得分:4)

如果要同时计算数据集中具有多个特定条件的行数,可以使用模式COUNT(CASE WHEN criteria THEN 1 END)。这是一个计算stats = 2stats = 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

演示:http://www.sqlfiddle.com/#!2/82414/1