美文网首页
day06 纵表转横表

day06 纵表转横表

作者: LittleBear_6c91 | 来源:发表于2019-04-28 14:55 被阅读0次

    以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 纵表转横表

          本文链接:https://www.haomeiwen.com/subject/yurdnqtx.html