mysql 统计每列即每个字段下的0,1,-1的个数

问题已经解决
图片说明
数据如图,我想求这个表中每个字段下0,1,-1的个数,即 air-control-type下有多少个0,多少个1,多少个-1;air-independent-back 下 0,1,-1的个数。。。。

注意效率,一条语句跑完最好

SELECT COUNT(CASE WHEN (A.air-control-type=0) THEN 0 END),
COUNT(CASE WHEN (A.air-control-type=1) THEN 0 END),
COUNT(CASE WHEN (A.air-control-type=-1) THEN 0 END),
COUNT(CASE WHEN (A.air-independent-back=0) THEN 0 END),
COUNT(CASE WHEN (A.air-independent-back=1) THEN 0 END),
COUNT(CASE WHEN (A.air-independent-back=-1) THEN 0 END)
FROM T_TABLE AS S

SELECT SUM( DECODE(air-control-type,0,1,0)) air-control-type0,
SUM( DECODE(air-control-type,1,1,0)) air-control-type1,
SUM( DECODE(air-control-type,-1,1,0)) air-control-type-1 ,.....FROM TABLE

SELECT air-control-type,COUNT(air-control-type),air-independent-back,COUNT(air-independent-back) FROM tablename GROUP BY air-control-type,air-independent-back

select sum(case when air-control-type = 0 then 1 else 0 end) zero_count,
sum(case when air-control-type= 1 then 1 else 0 end) one_count from table;
你看看这个可不可以

select
field_name,
field_value,
field_value_count
from
(
select 'c1' as field_name , c1 as field_value, count(1) field_value_count as cnt from my_table group by c1
union all
select 'c2' as field_name , c2 as field_value, count(1) field_value_count as cnt from my_table group by c2
union all
select 'c3' as field_name , c3 as field_value, count(1) field_value_count as cnt from my_table group by c3
) tmp

看看上面行不?行的话,还望赏点分

select count(air-control-type = 0 or null) typeZeroCount, count(air-control-type = 1 or null) typeOneCount, count(air-control-type = -1 or null) typeNegativeCount from table;