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;
posted @ 2021-12-06 10:35  Kotaku  阅读(128)  评论(0)    收藏  举报