美文网首页
2019-12-01_行转列

2019-12-01_行转列

作者: l_link | 来源:发表于2019-12-04 16:01 被阅读0次

有以下表

DROP TABLE IF EXISTS tb_score;

CREATE TABLE tb_score(

    id INT(11) NOT NULL auto_increment,

    userid VARCHAR(20) NOT NULL COMMENT '用户id',

    subject VARCHAR(20) COMMENT '科目',

    score DOUBLE COMMENT '成绩',

    PRIMARY KEY(id)

)ENGINE = INNODB DEFAULT CHARSET = utf8;

插入数据

INSERT INTO tb_score(userid,subject,score) VALUES ('001','语文',90);

INSERT INTO tb_score(userid,subject,score) VALUES ('001','数学',92);

INSERT INTO tb_score(userid,subject,score) VALUES ('001','英语',80);

INSERT INTO tb_score(userid,subject,score) VALUES ('002','语文',88);

INSERT INTO tb_score(userid,subject,score) VALUES ('002','数学',90);

INSERT INTO tb_score(userid,subject,score) VALUES ('002','英语',75.5);

INSERT INTO tb_score(userid,subject,score) VALUES ('003','语文',70);

INSERT INTO tb_score(userid,subject,score) VALUES ('003','数学',85);

INSERT INTO tb_score(userid,subject,score) VALUES ('003','英语',90);

INSERT INTO tb_score(userid,subject,score) VALUES ('003','政治',82);

要求:将列表转换为下图方式

语句:

解决方法1:

select userid,

SUM(case subject when '语文' then score else 0 end) as '语文',

SUM(case subject when '数学' then score else 0 end) as '数学',

SUM(case subject when '英语' then score else 0 end) as '英语',

SUM(case subject when '政治' then score else 0 end) as '政治'

from tb_score

group by userid

解决方法2:

SELECT userid,

SUM(IF(`subject`='语文',score,0)) as '语文',

SUM(IF(`subject`='数学',score,0)) as '数学',

SUM(IF(`subject`='英语',score,0)) as '英语',

SUM(IF(`subject`='政治',score,0)) as '政治'

FROM tb_score

GROUP BY userid

相关文章

  • 2019-12-01_行转列

    有以下表 DROP TABLE IF EXISTS tb_score; CREATE TABLE tb_score...

  • SQL Server行转列

    SQL行转列 经典实例 创建表格 SQL行转列 经典实例 创建表格 行转列 结果 参考链接

  • Oracle 行转列

    行转列,以, 分隔 将行转列语句提取成一个Function

  • sql中列转行unpivot、行转列pivot详细讲解||Mys

    目录:一、sqlserver列转行、行转列详解二、Oracle列转行、行转列详解三、DB2列转行、行转列详解四、M...

  • MySQL 行转列,列传行

    静态行转列 使用case...when....then 进行行转列 使用IF() 进行行转列 (1)SUM() 是...

  • SqlServer 行转列

    1 建表,添加测试数据 表数据如下图: 行转列sql 行转列如下图: 2 建表,添加测试数据 表数据如下: 行转列...

  • 2018-06-27

    1. hive行转列的实现

  • 行转列

    MySQL建表DROP TABLE IF EXISTS tb_score; CREATE TABLE tb_sco...

  • 行转列

    针对类似 UICollectionView当横向滚动时,显示顺序保持竖向滚动时的排序转换方法 OC Swift

  • mysql开发技巧笔记

    行转列 结果 使用 SUM 进行 行转列 列转行 应用场景 属性拆分 etl数据处理 1. 利用序列表处理列转行的...

网友评论

      本文标题:2019-12-01_行转列

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