SQL竖表转换成横表统计

Posted Apollo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL竖表转换成横表统计相关的知识,希望对你有一定的参考价值。

#创建表user_score
create table user_score
(
    name varchar(20),
    subjects varchar(20),
    score int
);
insert into user_score(name,subjects,score) values('张三','语文',60);
insert into user_score(name,subjects,score) values('张三','数学',70);
insert into user_score(name,subjects,score) values('张三','英语',80);
insert into user_score(name,subjects,score) values('李四','语文',90);
insert into user_score(name,subjects,score) values('李四','数学',100);
#创建表user_score2
create table user_score2
(
    name varchar(20),
    yuwen int,
    shuxue int,
    yingyu int
);
insert into user_score2(name,yuwen,shuxue,yingyu) values('张三',60,70,80);
insert into user_score2(name,yuwen,shuxue,yingyu) values('李四',90,100,0);
#纵表转横表
select name,
sum(case subjects when '语文' then score else 0 end) as '语文',
sum(case subjects when '数学' then score else 0 end) as '数学', 
sum(case subjects when '英语' then score else 0 end) as '英语'
from user_score group by name;
#纵表转横表
SELECT name, 'yuwen' AS subjects, yuwen AS score FROM user_score2 UNION ALL   
SELECT name, 'shuxue' AS subjects, shuxue AS score FROM user_score2 UNION ALL   
SELECT name, 'yingyu' AS subjects, yingyu AS score FROM user_score2  
ORDER BY name,subjects DESC; 

以上是关于SQL竖表转换成横表统计的主要内容,如果未能解决你的问题,请参考以下文章

sql竖表转横表

SQL 竖表变横表,自适应的,谁能帮看看。

竖表变横表怎么操作?你有啥快速的操作方法吗?

竖表转横表sql语句中的sum求出来的怎么是int类型

sql 编写横竖表转换

sql纵向数据变横向数据正负