1

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

我的桌子

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

谢谢。

4

1 回答 1

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

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

于 2012-05-18T21:29:32.583 回答