按表名显示所有no和yes的计数

时间:2015-03-04 16:11:15

标签: mysql

我有一张像......的桌子。

id cluster status
1 cluster_0 yes
2 cluster_0 no
3 cluster_0 yes
4 cluster_0 yes
5 cluster_1 no
6 cluster_5 yes
7 cluster_0 yes
8 cluster_8 no
...
...
...

我试图看到所有群集的计数和计数......

对于yescount,我可以使用像

这样的查询
SELECT cluster,count(*) as yescount FROM `cluster` WHERE status='yes' group by cluster

cluster   yescount
cluster_0 11
cluster_1 30
cluster_2 6
cluster_3 1
cluster_4 20

但是,我怎样才能像yescount一样显示nocount一边...

cluster   yescount nocount
cluster_0 11       5
cluster_1 30       10
cluster_2 6        20 
cluster_3 1        3
cluster_4 20       10

谢谢!

1 个答案:

答案 0 :(得分:2)

您可以使用基于案例的聚合

在MySQL中,当状态='是'如果为false,则返回1表示true为0 所以我们可以使用sum(status =' yes')得到yes count。

select cluster, 
       sum(status='yes') as yescount,
       sum(status='n')  as nocount
from Table1
group by cluster