mysql 行列转换
2016-02-23 23:25
471 查看
DELIMITER $$
USE `report_b011`$$
DROP PROCEDURE IF EXISTS `SP_RPT_ttt`$$
CREATE DEFINER=`root`@`%` PROCEDURE `SP_RPT_ttt`()
BEGIN
SET @EE='';
SET @SS='';
SELECT
(SELECT *FROM(
SELECT @EE:=CONCAT(@EE,'SUM(IF(AREA_NAME=\'',AREA_NAME,'\'',',NUM,0)) AS ',AREA_NAME,',') FROM (SELECT DISTINCT AREA_NAME FROM t_vod_col_click_num_by_day) A) t
ORDER BY 1 DESC LIMIT 1) INTO @SS;
SET @QQ=CONCAT('SELECT ifnull(COLUMNNAME,\'total\'),',LEFT(@SS,LENGTH(@SS)-1),'SUM(NUM) TOTAL FROM t_vod_col_click_num_by_day GROUP BY COLUMNNAME WITH ROLLUP');
PREPARE stmt2 FROM @QQ;
EXECUTE stmt2;
END$$
DELIMITER ;
USE `report_b011`$$
DROP PROCEDURE IF EXISTS `SP_RPT_ttt`$$
CREATE DEFINER=`root`@`%` PROCEDURE `SP_RPT_ttt`()
BEGIN
SET @EE='';
SET @SS='';
SELECT
(SELECT *FROM(
SELECT @EE:=CONCAT(@EE,'SUM(IF(AREA_NAME=\'',AREA_NAME,'\'',',NUM,0)) AS ',AREA_NAME,',') FROM (SELECT DISTINCT AREA_NAME FROM t_vod_col_click_num_by_day) A) t
ORDER BY 1 DESC LIMIT 1) INTO @SS;
SET @QQ=CONCAT('SELECT ifnull(COLUMNNAME,\'total\'),',LEFT(@SS,LENGTH(@SS)-1),'SUM(NUM) TOTAL FROM t_vod_col_click_num_by_day GROUP BY COLUMNNAME WITH ROLLUP');
PREPARE stmt2 FROM @QQ;
EXECUTE stmt2;
END$$
DELIMITER ;
相关文章推荐
- MySQL存储过程 IN,OUT,INOUT
- Mysql优化建议
- 更好的设计数据库还有就是数据库语句优化~~(主要是mysql)
- mysql优化总结
- mysql中的内置函数
- mysql表分区
- MySQL数据操作语句
- Mysql如何找出没有消费过的消费者姓名
- 阿里云服务器的MySQL莫名其妙的挂了 之 优化篇
- MYSQL日常
- MySQL索引
- Windows 下修改MySQL的root密码
- Windows 下 MySQL 5.7.9 安装教程
- mysql 常用操作命令
- MySQL小知识点(持续更新)
- mysql按条件查询当条件是数字的时候加不加引号是一样的。
- DOS环境下如何设置mysql的初始密码
- windows系统下mysql查询语句区分大小写的设置。
- MySQL连表操作和GROUP_CONCAT函数的使用
- mysql使用知识点总结