Mysql 对SQL中的多个值进行计数

Mysql 对SQL中的多个值进行计数,mysql,sql,Mysql,Sql,我有一个表,希望计算值的外观(无总和) 我需要以下结果: status_1 status_2 status_3 status_4 =================================== 3 2 1 0 我可以用一条SQL语句来实现这一点吗?使用带有计数函数的组查询: select status, count(status) from tablename group by status 将产生单个状态的计数 也许您可以嵌套此语句,但这样

我有一个表,希望计算值的外观(无总和)

我需要以下结果:

status_1 status_2 status_3 status_4
===================================
3        2        1        0

我可以用一条SQL语句来实现这一点吗?

使用带有计数函数的组查询:

select status, count(status)
from tablename
group by status
将产生单个状态的计数

也许您可以嵌套此语句,但这样做可能效率低下

编辑:
小组讨论是一种方式。请参阅其他答案。

重要的是要注意,当受支持的状态更改时,您所问的问题将意味着代码修改。我认为最好将结果分成几行。 这一行可以为您提供几行相同的结果:

SELECT COUNT(DISTINCT status) FROM mytable;

因此,您可以在孔时间内迭代,而无需修改查询。希望对你有帮助试试这个会对你有帮助的

select status, count(*) from tablename
group by status

这应该有<代码> 0版<代码>以匹配问题的输出。查尔斯-我更喜欢<代码>案例<代码> > <<代码>,因为它更“标准”,但是您的答案将显示<代码> null <代码> <代码> Stuts4<代码>,而OP希望它为零。考虑在应用程序级别处理数据显示的问题(如果您有一个)
Select 
   sum(case status When 1 Then 1 End) status1,
   sum(case status When 2 Then 1 End) status2,
   sum(case status When 3 Then 1 End) status3,
   sum(case status When 4 Then 1 End) status4,
   etc.
From table
select count(status) where status = x
SELECT COUNT(DISTINCT status) FROM mytable;
select status, count(*) from tablename
group by status