day06 纵表转横表

以mysql为例(pandas可以利用set_index转为索引再unstack)

create table b
(
    姓名 varchar(20),
    语文 int,
    数学 int,
    英语 int
);


insert into b(姓名,语文,数学,英语) values('张三',60,70,80);
insert into b(姓名,语文,数学,英语) values('李四',90,100,0);
insert into b(姓名,语文,数学,英语) values('五狗',80,90,70);


select 姓名, '语文' as '课程', 语文 as '成绩'
from b
union all 
select 姓名, '数学', 数学
from b
union all 
select 姓名, '英语', 英语
from b;
#转为横向表
select 姓名, 
max(case 课程 when '语文' then 成绩 else 0 end) as '语文',
max(case 课程 when '数学' then 成绩 else 0 end) as '数学',
max(case 课程 when '英语' then 成绩 else 0 end) as '英语'
from a
group by 姓名;

你可能感兴趣的:(day06 纵表转横表)