Mysql 列转行统计查询 、行转列统计查询

-- Table structure for `TabName`--
DROP TABLE IF EXISTS `TabName`;
CREATE TABLE `TabName` (
  `Id`int(11)NOT NULL AUTO_INCREMENT,
  `Name`varchar(20)DEFAULT NULL,
  `Date`date DEFAULT NULL,
  `Scount`int(11)DEFAULT NULL,
  PRIMARY KEY (`Id`)
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8;
 
-- ----------------------------
-- Records of TabName
-- ----------------------------
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 ScountELSE 0END ) 小说,
MAX(CASE NAME WHEN '微信' THEN ScountELSE 0END ) 微信 
FROM TabName 
GROUP BY Date
Mysql 列转行统计查询 、行转列统计查询_第1张图片
-- ------------------------
-- 行转列统计数据
-- ------------------------
select Date, group_concat(NAME,'总量:',Scount)as b_str from  TabName
group by Date
Mysql 列转行统计查询 、行转列统计查询_第2张图片
select Date,NAME, group_concat(NAME,'总量:',Scount)as b_strfrom   TabName
group by Date ,NAME

转载于:https://my.oschina.net/u/3055303/blog/878947

你可能感兴趣的:(Mysql 列转行统计查询 、行转列统计查询)