程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> Mysql行列轉換

Mysql行列轉換

編輯:MySQL綜合教程

Mysql行列轉換


1、創建表
CREATE TABLE `gas` (
	`id` INT(11) NOT NULL AUTO_INCREMENT,
	`oil` VARCHAR(100) NULL DEFAULT NULL,
	`district` VARCHAR(100) NULL DEFAULT NULL,
	`price` DOUBLE NULL DEFAULT '0',
	PRIMARY KEY (`id`)
)
ENGINE=InnoDB
AUTO_INCREMENT=11;

2、測試數據如下,select * from gas;

| id | oil | district | price |
| 1 | #0 | 寶安 | 11 |
| 2 | #0 | 福田 | 12 |
| 3 | #0 | 羅湖 | 13 |
| 4 | #93 | 寶安 | 21 |
| 5 | #93 | 福田 | 22 |
| 6 | #93 | 羅湖 | 23 |
| 7 | #97 | 寶安 | 31 |
| 8 | #97 | 福田 | 32 |

| 9 | #97 | 羅湖 | 33 |

3、行列轉換:

 

select ifnull(oil,'total') as oil,
sum(if(district='寶安',price,0)) AS BA,
sum(if(district='福田',price,0)) AS FT,
sum(if(district='羅湖',price,0)) AS LH,
SUM(price) AS TOTAL
from gas
group by oil with rollup ;

執行結果如下:

 

| oil | BA | FT | LH | TOTAL |
| #0 | 11 | 12 | 13 | 36 |
| #93 | 21 | 22 | 23 | 66 |
| #97 | 31 | 32 | 33 | 96 |
| total | 63 | 66 | 69 | 198 |

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved