从 Where 子句计算行数并在不同的列中显示每个计数

Counting rows from Where Clause and display every count in a different column

您好,我有一个 MySql 查询如下:

Select Count(*),status,time from table where Status in (2,3,8) group by status,time

输出正常我得到类似

的东西

统计状态时间

10 - 1 - 2014

10 - 2 - 2014

19 - 1 - 2015

11 - 2 - 2015

但我想要的是

状态 1 的计数 - 状态 2 的计数 - 时间

10 - 10 - 2014

19 - 11 - 2015

自从我的数据库有大约 1 条 mio 记录以来,有没有一种好的、有效的方法。我想使用此数据在 table 中显示它而无需进一步操作。

提前致谢

以下应该有效:

SELECT SUM(IF(`Status` = 1,1,0) ) CountOfStatus1,SUM(IF(`Status` = 2,1,0) ) CountOfStatus2,TIME FROM TABLE WHERE STATUS IN (1,2) GROUP BY TIME

您需要根据自己的需要对其进行调整。