300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > mysql sql 列变成横向_SQL 统计 字段 竖向转横向 (行转列)显示

mysql sql 列变成横向_SQL 统计 字段 竖向转横向 (行转列)显示

时间:2018-07-28 01:21:20

相关推荐

mysql sql 列变成横向_SQL 统计 字段 竖向转横向 (行转列)显示

在做一些SQL统计时,为了更直观看到结果,并进行比较,需要把竖向表的部分统计字段转成横向显示。

原数据格式:

wbname newstime

------------------------------

潇湘晨报 直播报道

佛山日报后天

扬子晚报昨天

扬子晚报昨天

足球报 直播报道

足球报 直播报道

中山日报昨天

要统计成横向结构

wbname 昨天直播报道 后天

------------------------------------------------------

潇湘晨报01 0

佛山日报00 1

扬子晚报20 0

足球报 02 0

中山日报10 0

数据库表的结构

Field Type

-------- -----------

id int(11)

wbname varchar(50)

newstime varchar(50)

测试数据(MySQL)

insert into `wb`(`id`,`wbname`,`newstime`) values

(1,'潇湘晨报','直播报道'),

(2,'佛山日报','后天'),

(3,'扬子晚报','昨天'),

(4,'扬子晚报','昨天'),

(5,'足球报','直播报道'),

(6,'足球报','直播报道'),

(7,'中山日报','昨天'),

(8,'中山日报','当天'),

(9,'中山日报','直播报道'),

(10,'钱江晚报','直播报道'),

(11,'南方日报','时间不详'),

(12,'广州日报','直播报道'),

(13,'中国经营报','时间不详'),

(14,'中国经营报','时间不详'),

(15,'中国经营报','上周'),

(16,'烟台日报传媒集团','时间不详'),

(17,'烟台日报传媒集团','其他'),

(18,'烟台日报传媒集团','上周'),

(19,'扬子晚报','时间不详'),

(20,'扬子晚报','上周'),

(21,'扬子晚报','时间不详'),

(22,'扬子晚报','时间不详'),

(23,'扬子晚报','当天'),

(24,'扬子晚报','时间不详'),

(25,'潇湘晨报','时间不详'),

(26,'足球报','直播报道'),

(27,'足球报','直播报道'),

(28,'潇湘晨报','其他'),

(29,'潇湘晨报','其他'),

(30,'足球报','直播报道'),

(31,'足球报','直播报道'),

(32,'足球报','直播报道'),

(33,'足球报','直播报道'),

(34,'足球报','直播报道'),

(35,'足球报','直播报道'),

(36,'潇湘晨报','当天'),

(37,'足球报','直播报道'),

(38,'潇湘晨报','直播报道'),

(39,'潇湘晨报','直播报道'),

(40,'潇湘晨报','直播报道'),

(41,'潇湘晨报','直播报道');

主角:SQL语句

select wbname

,sum(case when newstime='上周' then total else 0 end) as '上周'

,sum(case when newstime='昨天' then total else 0 end) as '昨天'

,sum(case when newstime='当天' then total else 0 end) as '当天'

,sum(case when newstime='直播报道' then total else 0 end) as '直播报道'

,sum(case when newstime='时间不详' then total else 0 end) as '时间不详'

,sum(case when newstime='其他' then total else 0 end) as '其他'

from (

select wbname,newstime,count(*) as total from wb group by wbname,newstime

as temp group by wbname;

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。