MySql Sql 仅使用1条SQL语句求每列中yes/no出现的次数
create table tb_count(
id int not null auto_increment,
col1 enum('yes', 'no'),
col2 enum('yes', 'no'),
col3 enum('yes', 'no'),
col4 enum('yes', 'no'),
primary key(id)
) default charset=utf8;
insert into tb_count values (null, 'yes', 'yes', 'no', 'yes');
insert into tb_count values (null, 'no', 'yes', 'no', 'no');
insert into tb_count values (null, 'no', 'yes', 'no', 'yes');
insert into tb_count values (null, 'no', 'no', 'no', 'no');
select * from tb_count;
# 要求输出的表如下:
# value col1 col2 col3 col4
# yes 1 3 0 2
# no 3 1 4 2

解题答案:
select 'yes'as value,sum(col1='yes')as col1,sum(col2='yes')as col2,sum(col3='yes')as col3,sum(col4='yes')as col4 from tb_count
union
select 'no',sum(col1='no'),sum(col2='no'),sum(col3='no'),sum(col4='no') from tb_count;

浙公网安备 33010602011771号