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

时间:2015-07-21 13:53:07

标签: mysql sql select where-clause

您好我有一个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

但我想拥有的是像

Status1的计数 - Status2的计数 - 时间

10 - 10 - 2014

19 - 11 - 2015

因为我的数据库有大约1 mio记录,所以有一种很好而有效的方法吗?我想使用这些数据在没有进一步操作的情况下在表格中显示它。

提前致谢

1 个答案:

答案 0 :(得分:1)

以下内容应该有效:

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

您需要针对您想要查看的任何状态进行调整。