mysql动态行转列
来源:互联网 发布:淘宝助理网页版 编辑:程序博客网 时间:2024/06/08 15:11
DROP TABLE IF EXISTS `score`;CREATE TABLE `score` ( `id` int(11) NOT NULL AUTO_INCREMENT, `class` varchar(255) DEFAULT NULL, `score` double DEFAULT NULL, `userid` int(11) DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=latin1;INSERT INTO `score` VALUES ('1', 'math', '90', '1');INSERT INTO `score` VALUES ('2', 'english', '90', '1');INSERT INTO `score` VALUES ('3', 'computer', '80', '1');INSERT INTO `score` VALUES ('4', 'sports', '90', '1');INSERT INTO `score` VALUES ('5', 'math', '80', '2');INSERT INTO `score` VALUES ('6', 'english', '85', '2');INSERT INTO `score` VALUES ('7', 'computer', '100', '2');
查询语句
SET @EE='';set @str_tmp='';SELECT @EE:=CONCAT(@EE,'SUM(IF(class=\'',class,'\'',',score,0)) AS ',class,',') as aa into @str_tmp FROM (SELECT DISTINCT class FROM score) A order by length(aa) desc limit 1; SET @QQ=CONCAT('SELECT ifnull(score.userid,\'total\'),',LEFT(@str_tmp,char_length(@str_tmp)-1),' ,SUM(score) AS TOTAL FROM score GROUP BY userid WITH ROLLUP');PREPARE stmt FROM @QQ; EXECUTE stmt ;deallocate prepare stmt;
原来的记录:
新查询出的结果:
0 0
- MySQL动态行转列
- MySql 动态行转列整理
- MySql动态行转列
- MySQL 动态行转列
- mysql动态行转列
- mysql动态行转列
- mysql 动态行转列
- mysql 动态行转列
- MYSQL动态行转列
- mysql 动态行转列
- mysql 动态行转列
- 数据库--mysql中动态行转列
- MySQL存储过程的动态行转列
- MySQL存储过程中使用动态行转列
- MySQL存储过程的动态行转列
- MySQL存储过程中使用动态行转列
- MySQL存储过程中使用动态行转列
- mysql动态sql语句
- linux按修改时间排序
- AndroidStudio导入项目一直卡在Building gradle project info最快速解决方案
- Phonenix安装(简化hbase的工具)
- JavaScript强化教程-表单验证
- 为什么要使用ABP框架?
- mysql动态行转列
- ORACLE中的NULL
- Xposed模块开发:修改设备IMEI
- yum 安装时 Couldn't resolve host 解决办法
- python中input和raw_input区别
- 使用Validator做SpringMVC的验证框架 - 自定义验证组件
- jdk安装配置
- jboss5可以使用http://localhost/和http://127.0.0.1/ 不可以ip访问
- Java内存模型之重排序