行列转换
SELECT 列 ,MAX(CASE 列名1 WHEN '某个值' THEN 列名2 ELSE 0 END )别名 FROM 表名 GROUP BY 列;
列子:
CREATE TABLE TabName (
Id int(11) NOT NULL,
Name varchar(20) DEFAULT NULL,
Date date DEFAULT NULL,
Scount int(11) DEFAULT NULL
);
INSERT INTO `TabName` VALUES ('1', '小说', '2013-09-01', '10000');
INSERT INTO `TabName` VALUES ('2', '微信', '2013-09-01', '20000');
INSERT INTO `TabName` VALUES ('3', '小说', '2013-09-02', '30000');
INSERT INTO `TabName` VALUES ('4', '微信', '2013-09-02', '35000');
INSERT INTO `TabName` VALUES ('5', '小说', '2013-09-03', '31000');
INSERT INTO `TabName` VALUES ('6', '微信', '2013-09-03', '36000');
INSERT INTO `TabName` VALUES ('7', '小说', '2013-09-04', '35000');
INSERT INTO `TabName` VALUES ('8', '微信', '2013-09-04', '38000');
SELECT * FROM `TabName`;
SELECT Date ,MAX(CASE NAME WHEN '小说' THEN Scount ELSE 0 END ) 小说,MAX(CASE NAME WHEN '微信' THEN Scount ELSE 0 END ) 微信 FROM TabName GROUP BY Date;