zoukankan      html  css  js  c++  java
  • Mysql将学生分数行转列并求和

    建表

    CREATE TABLE `score` (
        `id` INT(5) NOT NULL AUTO_INCREMENT,
        `name` VARCHAR(20) NULL DEFAULT NULL COLLATE 'utf8_general_ci',
        `obj` VARCHAR(20) NULL DEFAULT NULL COLLATE 'utf8_general_ci',
        `fenshu` INT(10) NULL DEFAULT '0',
        PRIMARY KEY (`id`) USING BTREE
    )
    COLLATE='utf8_general_ci'
    ENGINE=InnoDB
    AUTO_INCREMENT=11
    ;

    插入数据

    INSERT INTO `test`.`score` (`name`, `obj`, `fenshu`) VALUES ('李四', '语文', '40');
    INSERT INTO `test`.`score` (`name`, `obj`, `fenshu`) VALUES ('李四', '数学', '50');
    INSERT INTO `test`.`score` (`name`, `obj`, `fenshu`) VALUES ('李四', '英语', '60');
    
    INSERT INTO `test`.`score` (`name`, `obj`, `fenshu`) VALUES ('张三', '语文', '10');
    INSERT INTO `test`.`score` (`name`, `obj`, `fenshu`) VALUES ('张三', '数学', '20');
    INSERT INTO `test`.`score` (`name`, `obj`, `fenshu`) VALUES ('张三', '英语', '30');

    数据为:

     执行行转列查询:

    SELECT NAME,
    SUM(case when obj = '语文' then fenshu ELSE 0 END) AS '语文',
    SUM(case when obj = '数学' then fenshu ELSE 0 END) AS '数学',
    SUM(case when obj = '英语' then fenshu ELSE 0 END) AS '英语',
    SUM(fenshu)
    FROM score
    GROUP BY 
    NAME

    查询结果为:

  • 相关阅读:
    DOSD用scratch的方式训练通用目标检测,性能很高
    caffemodel模型
    NetScope脱机(localhost)使用[转】
    class前置声明
    const函数
    CUDA开发
    caffe2学习
    faster rcnn讲解很细
    控制台输出覆盖当前行显示
    UA池 代理IP池 scrapy的下载中间件
  • 原文地址:https://www.cnblogs.com/yoyowin/p/13274945.html
Copyright © 2011-2022 走看看